也请您查看底部
我更新我必须在Chrome浏览器跨域jQuery.ajax GET请求一些问题。
预战斗时间非常长(最多20秒),而在Firefox中运行良好。
我尝试了不同的提示(例如启用异步),但我无法管理。响应是一个json对象数组,不是很大(只有几个字节)。
这个问题似乎只在第一次打电话。我做了一个再次执行请求的函数。它由成功处理程序执行。在从最少12秒开始的第一次延迟之后,请求执行正常。
我已经尝试过不同版本的jQuery(因为Iam第一次使用2.0.3)。
我登录了服务器。正如所想象的那样,OPTION请求不会执行长达20秒。没有服务器问题。服务器完全根据延迟识别命令并执行GET方法。
对于页面载入2014-01-11 14时59分00秒我的日志输出以下:
2014-01-11 14:59:14 - log.txt - "OPTIONS /unit/IO/*?_=1389452340572 HTTP/1.1" 200 -
2014-01-11 14:59:14 - log.txt - "GET /unit/IO/*?_=1389452340572 HTTP/1.1" 200 -
2014-01-11 14:59:14 - log.txt - "OPTIONS /unit/IO/*?_=1389452340573 HTTP/1.1" 200 -
2014-01-11 14:59:14 - log.txt - "GET /unit/IO/*?_=1389452340573 HTTP/1.1" 200 -
这是我的AJAX调用:
$.ajax({
url: <<crossdomain>>,
type: 'GET',
contentType:'application/json',
async:true,
cache:false,
beforeSend: function (request)
{
request.setRequestHeader("Authorization", 'Basic ' + encodedData);
},
success: function(response) {
alert(response)
}
});
请求头(铬):
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4
Access-Control-Request-Headers:accept, authorization, content-type
Access-Control-Request-Method:GET
Cache-Control:max-age=0
Connection:keep-alive
DNT:1
Host:<<crossdomain>>
Origin:<<thisdomain>>
Referer:<<directpathonthisdomain>>
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36
回应标题(铬):
Access-Control-Allow-Headers:Authorization
Access-Control-Allow-Headers:Accept
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Headers:Accept-Language
Access-Control-Allow-Methods:POST, GET, OPTIONS
Access-Control-Allow-Origin:*
Cache-Control:no-cache
Content-Type:application/json
Date:Sat, 11 Jan 2014 13:28:32 GMT
Server:Python3.2
这是针对第一呼叫网络业务:
铬:
OPTION
DNS Lookup: 0 ms
Connecting: 3 ms
**Waiting: 17.44s**
Receiving 2 ms
GET
DNS Lookup: 0 ms
Connecting: 2 ms
Sending: 0 ms
Waiting: 46 ms
Receiving 1 ms
为了比较Firefox的日志:
OPTION
DNS Lookup: 0 ms
Waiting: 10 ms
Receiving 5 ms
GET
DNS Lookup: 0 ms
Waiting: 41 ms
Receiving 3 ms
编辑: 如果Iam直接打开html文件(file:///)并且不在本地/远程服务器上托管,则不存在任何问题。
编辑2: 它在铬无痕模式下工作 - 可能缓存问题?
我也遇到了这个问题。如你所说,它在Incognito和Firefox中运行良好。我希望有人能提供一个解释/解决方案。 – kevinAlbs
嗨凯文,我仍然在寻找解决方案。这个问题也出现在最新的Canary Build of Chrome中。 – user1532132
你有没有找到解决方案?我甚至尝试了一个简单的XMLHttpRequest() - >相同的结果 – user1532132