11

きれいな URL を持つサービスはほとんどありません

各サービスを呼び出している間、URL パターンがチェックされています。

現在、JSONP 手法を使用して、別のサーバーから AJAX 経由でこれらの URL を呼び出しています。

ただし、呼び出し中は、サービス URL を使用してパラメーターを自動的に追加callbackします。_(timestamp)

タイムスタンプ パラメータは削除されますcache : true。ただし、コールバック パラメータを削除することはできません。

これが私のAJAX呼び出しコードです-

$.ajax({
        type: 'GET',
        url : "http://test.com/test/services/getFollowMeHistory/1/1/50",
        dataType:'jsonp',
        cache : true,
        crossDomain : true,
        //jsonpCallback : false,

        error : function(XMLHttpRequest, textStatus, errorThrown) {
            alert("Error occured while loading Loads."+textStatus);
            }
        });
});

URL を呼び出して、http://test.com/test/services/getFollowMeHistory/1/1/50?callback=falseサービス側から 404 を取得しています。

私のサービスはcallbackMethod( {..JSON RESPONSE...} )としてデータを返しています。したがって、スクリプトで が自動的に呼び出さfunction callbackMethod(data)れます。URL にそのコールバック パラメータは必要ありません。

?callback=...URLからその部分を削除するだけです

助けてください。

4

2 に答える 2

15

jsonp: falseではなく、設定する必要がありjsonpCallback: falseます。jsonpCallbackまた、サービスから受け取るコールバック名にオプションを明示的に設定する必要があります。

参考:http ://api.jquery.com/jQuery.ajax/

于 2012-06-08T19:57:37.477 に答える
3
  1. キャッシュを ie に設定するtrueと、リクエスト応答がキャッシュされ、後続のすべての JSONP 呼び出しは新しいデータを返しません。

  2. 応答を読み取る方法がないため、コールバックがないと JSONP は使用できません。コールバックは、JSONP の要点です。

  3. JSONP 要求を処理するようにサーバーをセットアップする必要があります。送信する URL は、クライアント側には影響しません。したがって、問題はサーバー側にあるはずです。あなたがそれを処理する必要がある場所です。これをjQueryの問題ではありません。

カスタム コールバックを使用している場合 これを試してください。ただし、カスタム コールバックはコールバックを削除することと同じではありません。

 jsonpCallback : "callbackMethod"
于 2012-06-08T19:59:18.697 に答える