add request abort on timeout and check for data before checking data.status