Chrome和Firefox CORS AJAX调用在某些Mac计算机上中止

我们在www.saddleback.com/live上有一个网页,Chrome和Firefox CORS AJAX调用在某些Mac机器上中止。 在具有OSX 10.9(最新更新),Chrome和Firefox(带有最新更新)的Mac上,对http://api.saddleback.com/WorshipService?version=2&null&_=1386201207191的AJAX调用将中止。 这适用于Safari。

这种行为是孤立的,但在某些机器上可以重现,但在其 我们有其他Mac机器具有相同的操作系统和浏览器版本,可以成功打开网页。

我已经validation了Web服务器在500毫秒内成功响应了AJAX请求。 然而Chrome仍在等待响应约30秒,并最终中止呼叫。 我在下面的失败调用中包含了chrome:// net-internals:

11645: URL_REQUEST http://api.saddleback.com/WorshipService?version=2&null&_=1386201207191 Start Time: 2013-12-04 15:53:27.469 t=1386201207469 [st= 0] +REQUEST_ALIVE [dt=30398] t=1386201207470 [st= 1] +URL_REQUEST_START_JOB [dt=30397] --> load_flags = 143540480 (DO_NOT_SAVE_COOKIES | DO_NOT_SEND_AUTH_DATA | DO_NOT_SEND_COOKIES | ENABLE_LOAD_TIMING | MAYBE_USER_GESTURE | REPORT_RAW_HEADERS | VERIFY_EV_CERT) --> method = "GET" --> priority = 2 --> url = "http://api.saddleback.com/WorshipService?version=2&null&_=1386201207191" t=1386201207470 [st= 1] HTTP_CACHE_GET_BACKEND [dt=0] t=1386201207470 [st= 1] HTTP_CACHE_OPEN_ENTRY [dt=0] --> net_error = -2 (ERR_FAILED) t=1386201207470 [st= 1] HTTP_CACHE_CREATE_ENTRY [dt=0] t=1386201207470 [st= 1] HTTP_CACHE_ADD_TO_ENTRY [dt=0] t=1386201207470 [st= 1] +HTTP_STREAM_REQUEST [dt=2] t=1386201207472 [st= 3] HTTP_STREAM_REQUEST_BOUND_TO_JOB --> source_dependency = 11647 (HTTP_STREAM_JOB) t=1386201207472 [st= 3] -HTTP_STREAM_REQUEST t=1386201207472 [st= 3] +HTTP_TRANSACTION_SEND_REQUEST [dt=0] t=1386201207472 [st= 3] HTTP_TRANSACTION_SEND_REQUEST_HEADERS --> GET /WorshipService?version=2&null&_=1386201207191 HTTP/1.1 Host: api.saddleback.com Connection: keep-alive Accept: application/json, text/javascript, */*; q=0.01 Origin: http://www.saddleback.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36 Content-Type: application/json Referer: http://www.saddleback.com/onlinecampus/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 t=1386201207472 [st= 3] -HTTP_TRANSACTION_SEND_REQUEST t=1386201207472 [st= 3] +HTTP_TRANSACTION_READ_HEADERS [dt=30395] t=1386201207472 [st= 3] +HTTP_STREAM_PARSER_READ_HEADERS [dt=30395] t=1386201237867 [st=30398] CANCELLED t=1386201237867 [st=30398] -URL_REQUEST_START_JOB --> net_error = -3 (ERR_ABORTED) t=1386201237867 [st=30398] -REQUEST_ALIVE 

以下是Wireshark的请求和回复:

请求

 GET /WorshipService?version=2&null&_=1386192341441 HTTP/1.1 [Expert Info (Chat/Sequence): GET /WorshipService?version=2&null&_=1386192341441 HTTP/1.1] [Message: GET /WorshipService?version=2&null&_=1386192341441 HTTP/1.1] [Severity level: Chat] [Group: Sequence] Request Method: GET Request URI: /WorshipService?version=2&null&_=1386192341441 Request Version: HTTP/1.1 Host: api.saddleback.com Connection: keep-alive Cache-Control: max-age=0 Accept: application/json, text/javascript, */*; q=0.01 Origin: http://www.saddleback.com User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.57 Safari/537.36 Content-Type: application/json Referer: http://www.saddleback.com/onlinecampus/ Accept-Encoding: gzip,deflate,sdch Accept-Language: en-US,en;q=0.8 

响应

 HTTP/1.1 200 OK [Expert Info (Chat/Sequence): HTTP/1.1 200 OK] [Message: HTTP/1.1 200 OK] [Severity level: Chat] [Group: Sequence] Request Version: HTTP/1.1 Status Code: 200 Response Phrase: OK Cache-Control: no-cache Pragma: no-cache Content-Type: application/json; charset=utf-8 Expires: -1 Server: Microsoft-IIS/7.5 Access-Control-Allow-Origin: http://www.saddleback.com Access-Control-Allow-Credentials: true X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date: Wed, 04 Dec 2013 21:25:41 GMT Content-Length: 2841 [Content length: 2841] Set-Cookie: NSC_ndxfc1-45*80=ffffffffaf181c9545525d5f4f58455e445a4a423660;expires=Wed, 04-Dec-2013 14:44:34 GMT;path=/;httponly 

我花了太多时间试图弄清楚为什么这在某些Mac配置上失败而不是其他配置。 任何帮助将非常感激。

花了很长时间看低级网络数据包后试图找到问题。 原来,病毒扫描程序阻止了这个电话。 关闭网络扫描,它开始工作。

简而言之,Sophos在Firefox和Chrome上阻止了api.saddleback.com,但在Safari上却没有。 去搞清楚。