0

タイトルが示すように、私は次のものを持っています:

$.ajax({
  "url" : ...
, "type" : "GET"
, "dataType" : "JSON"
, "success" : function(response_data) {
    that.data = response_data;
    success(response_data);
  }
, "onerror" : function(data) {
    console.log(JSON.stringify(data));
  }
});

しかし、私がそれを実行すると、私は得る

XML Parsing Error: syntax error Location: moz-nullprincipal

firebug を見ると、リクエストが

Accept  application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language en-us,en;q=0.5
Cache-Control   max-age=0
Connection  keep-alive
Host    localhost:8888
Referer http://localhost:8888/
User-Agent  Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:13.0) Gecko/20100101       Firefox/13.0.1
X-Requested-With    XMLHttpRequest

何か案は?

4

3 に答える 3

3

最初に「JSON」を小文字の「json」に変更します。しかし、これは jQuery がサーバーから返すことを期待している型であり、必ずしもサーバーが送信するものではありません。

サーバーが JSON を返していることは確かですか? 再確認する価値があります。Fiddler の応答を見たことがありますか? XML の場合は、スクリプトの問題ではなく、サーバーの問題です。

于 2012-07-03T22:20:36.720 に答える
2

これに答えようとした皆さんに感謝します。

しかし、いつものように、私はここでnoob'ed.

firebug に表示される XML 解析エラーは、実際にはコードのエラーではなく、firebug が XML であると推測して解析しようとして失敗しました。

私の問題はプログラムの他の場所にあり、解決されました。

大文字と小文字の「JSON」に違いはありませんでした。

マックス

于 2012-07-03T22:57:41.690 に答える
1

本当の問題は、サーバーが「Content-type」ヘッダーを設定していないことです。「application/json」に設定します。

たとえば、node.js では次のようになります。

res.setHeader('Content-type', 'application/json');
于 2016-11-30T19:16:58.433 に答える