0

次のようないくつかのリクエストがあります。

   $('#some-button').on('click', function(e) {
      e.preventDefault(); 
      $this = $(this);
      $.ajax({
         url: 'some_request.php/?q='+$some_id,
         dataType: 'json',
         success: function(data) {
            alert('success!')
         }          
      }); 
   });

つまり、ボタンのクリックで開始される多くの AJAX リクエストです。Chrome によると、このリクエストは「保留中」のままです - JS アラートはありません。HTTP 応答コードは返されません。ただそこに座って応答を待っていて、応答が得られなかったと思います。

質問は次のようなものです: jquery $.ajax リクエストは保留中のままですが、答えは役に立ちません。PHP または HTML コードのどこにもセッションを使用していません。

何か案は?どうもありがとう。

4

2 に答える 2

2

jQuery Ajax エラー処理関数が必要だと思います。ここにあります:

// jQuery Ajax Error Handling Function
$.ajaxSetup({
    error: function(jqXHR, exception) {
        if (jqXHR.status === 0) {
            alert('Not connect.\n Verify Network.');
        } else if (jqXHR.status == 404) {
            alert('Requested page not found. [404]');
        } else if (jqXHR.status == 500) {
            alert('Internal Server Error [500].');
        } else if (exception === 'parsererror') {
            alert('Requested JSON parse failed.');
        } else if (exception === 'timeout') {
            alert('Time out error.');
        } else if (exception === 'abort') {
            alert('Ajax request aborted.');
        } else {
            alert('Uncaught Error.\n' + jqXHR.responseText);
        }
    }
});

次に、ajax 関数を呼び出します。

$.ajax({
    url: 'some_request.php/?q=' + $some_id,
    dataType: 'json',
    success: function(data) {
        alert('success!')
    }
}); 

そして、あなたが得ているエラーを確認してください。

于 2012-11-24T17:06:19.097 に答える
0

リクエストしている PHP ファイルが同じドメインにあることを確認してください。通常、これは、ほとんどの Web ブラウザーで許可されていないクロスドメイン Ajax 呼び出しを行うときに発生します。その場合は、代わりにjsonpを試す必要があります。例を挙げた実用的な説明は次のとおりです。 http://www.jquery4u.com/json/jsonp-examples/

于 2012-11-24T16:30:45.337 に答える