Chromeで適切なデータを返すサービスが1つありますが、FirefoxとIE9ではエラーが発生します。GETは200OKコードを返すように見えますが、それでもエラーコールバックで終了します。私は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);
serviceUrl:
"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も使用していることを言及するのを忘れました(それがいくらかの光をもたらすかどうかはわかりません、..)
乾杯、ミロ