0

似たような質問がたくさんありますが、要点を直接説明する質問は見つかりませんでした。DataType html を使用して、jQuery の $.ajax 呼び出しからプレーン テキストを取得しようとしています。StatusCode は 200 OK ですが、エラー関数が起動されます。


コード時間:

HTML (index.html)

<html>
 <head>
  <title>Test</title>
  <script type="text/javascript" src="jquery.js"></script>
 </head>
<body>
 <script type="text/javascript">
  function doajax(){
   $.ajax({
   url:'http://localhost/test.php',
   DataType:'html',
   data:{id:5},
   success:function(data){ alert('We made it'); },
   error:function(v1,v2,v3){ alert('Something went wrong'); } //gets fired
  });
 }
 </script>
 <a href="#" onclick="doajax(); return false;">Click to test</a>
</body>
</html>

PHP (test.php)

echo 'Hi';

これは私には些細なことのように見えますが、test.php ファイルからデータを取得できません。「こんにちは」文字列だけが期待されますが、エラーハンドラーが起動され、何も返されません。

エラー応答

xhr:status 200
status:error
text:-blank-

この簡単なスクリプトを実行できないのはなぜですか?

編集:カンマがありません

更新: Firefox の問題です! すべてのブラウザは動作しますが、それはありません。

4

3 に答える 3

1

コードは問題ありませんが、,後のコンマ()を見逃していますdata:{id:5}

だからそれはでdata:{id:5},はなくdata:{id:5}

于 2012-06-18T11:47:41.163 に答える
1

私は同じ問題を抱えていましたが、修正は少し異なりました。

私はgetリクエストをしていました

JQueryAjaxSettings ={
    url: '/api/Cart/',
    type: 'GET',
    dataType: "application/json"
};

get リクエストにデータ型を指定すると、エラーが呼び出されたことが判明しました。削除するだけdatatype: "application/json"で機能します。

于 2013-12-02T01:28:58.130 に答える
0

http://localhost理解した:開いたテストページがhttp://192.168.1.110、別名自分のローカルIPアドレスであるときにajaxリクエストを送信していました。もちろん、Javascriptの「同一生成元ポリシー」が混乱を招き、リクエストを破りました。

ajaxリクエストをに変更しhttp://192.168.1.110、すべてがうまくいくようになりました。

于 2012-06-18T13:28:51.610 に答える