我有一项服务可以在 chrome 中返回正确的数据,但在 firefox 和 ie9 中以错误结束。看起来 GET 返回 200 OK 代码,但仍以错误回调结束。我通过backbonejs 获取数据(使用jquery.getJson 和ajax 我得到相同的结果)。如果我尝试从远程服务器或本地获取数据,我也会得到相同的结果。
Chrome:版本 23.0.1271.64 m FF:16.0.2 IE9:9.0.8112.16421
wcf:
[OperationContract]
[WebInvoke(Method = "GET", UriTemplate = "/getData/{name}", BodyStyle = WebMessageBodyStyle.Wrapped, ResponseFormat = WebMessageFormat.Json)]
List<Names> getData(string name);
服务网址:
"http://serverABC:4000/myService.svc/getData/test"
从 javascript 获取: 通过主干或 jqueryGetJson():
$.getJSON("http://serverABC:4000/myService.svc/getData/test", function () {
alert("success");
})
.success(function () { alert("second success"); })
.error(function (result) {
console.log('error:', result);
})
结果: “http://serverABC:4000/myService.svc/getData/test 200 OK 70ms”
标题:
Response Headers
Cache-Control private
Content-Length 6544
Content-Type application/json; charset=utf-8
Date Fri, 16 Nov 2012 14:09:46 GMT
Server Microsoft-IIS/7.5
Set-Cookie ASP.NET_SessionId=s3aguluzip0dw135glbxlwwf; path=/; HttpOnly
X-AspNet-Version 4.0.30319
X-Powered-By ASP.NET
Request Headers
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Connection keep-alive
Host svgwbip93:4000
Origin http://localhost:51280
Referer http://localhost:51280/Default.aspx?ReturnUrl=%2f
User-Agent Mozilla/5.0 (Windows NT 6.1; WOW64; rv:16.0) Gecko/20100101 Firefox/16.0
调试结果:
readyState 0
responseText ""
status 0
**statusText "error"**
abort function()
always function()
complete function()
done function()
error function()
fail function()
getAllResponseHeaders function()
getResponseHeader function()
overrideMimeType function()
pipe function()
progress function()
promise function()
setRequestHeader function()
state function()
statusCode function()
success function()
then function()
toString function()
响应: - 是空的(这很可能是问题所在(但正如我在 Chrome 中提到的那样,我得到了正确的 json 数据)
编辑 1: 我试图用提琴手得到原始响应,我得到了 JSON。最大的问题是为什么回调会出错。这是我的原始回复:
HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 29
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
Set-Cookie: ASP.NET_SessionId=kuv3g0r2dgmu5bpaoayj5lic; path=/; HttpOnly
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Fri, 16 Nov 2012 19:32:58 GMT
{"PlatformDrawingsResult":[]}
我验证了 json - 看起来没问题,所以可能是什么问题....嗯。我忘了提到我也在使用 requirejs (不确定这是否会带来一些亮点,..)
干杯,米罗