0

Qnを複製している場合は申し訳ありません。しかし、どの答えも私のクロスブラウザリクエストの問題に対する解決策を提示していません。

jsonと必要なヘッダーを使用して別のURLにGETリクエストを送信する必要があります。次のコードを試しましたが、機能していないようです。

3つのパラメータが必要です。

var URL = 'url?firstName=myname&lastName=mylastname&email=myemail';
$.ajax({
    type: 'GET',
    url: URL,
    dataType: 'jsonp',
    success: function(){
    alert("hi");


 },
    error: function() {
        alert( 'Something goes wrong!' );
    }
});

出力は「問題が発生しました!」です。これは、ブラウザ領域でURLをコピーすると機能します。しかし、私はjqueryとjson形式の入力を介して同じことを達成しようとしています。必要なヘッダーを渡す必要があります。

上記のコードに何が欠けているのかを誰かに教えてもらえれば幸いです。

4

3 に答える 3

0

json以下のように応答してヘッダーを設定します。

JSONの場合:

header('Content-Type: application/json');

JSON-Pの場合:

header('Content-Type: application/javascript');

JSONPは、JSONコンテンツをラップする追加のJavaScriptコールバック関数を備えたJSONです。

于 2013-03-04T09:04:45.297 に答える
0

jsonp を dataType として使用している場合、サーバー側でコールバック関数をバインドする必要があります。たとえば、{"id":"myId"} のような json 応答が必要な場合、サーバー側では " mycallback({"id":"myId"})";

また、クライアント側でもその関数を記述する必要があります。

function mycallback(json)
{alert(json);}
于 2013-03-04T09:08:41.467 に答える
0

サーバーがCORSのヘッダーを設定するまで、クロスドメインリクエストを行うことはできません. CORS

Access-Control-Allow-Origin =* 

他の URL で CORS リクエストを実行する権限が既にある場合は、contentType を指定する必要があります。

URLにコールバック関数を追加します

var URL = 'url?firstName=myname&lastName=mylastname&email=myemail&callback=someotherFunction';

次に ajax を呼び出します。

$.ajax({
    type: 'GET',
    url: URL,
    Content-Type: 'application/javascript'
    dataType: 'jsonp',
    success: function(){
    alert("hi");


 },
    error: function() {
        alert( 'Something goes wrong!' );
    }
});

function someotherFunction(response)
{
 alert(respone.yourData); //do something with response.
}
于 2013-03-04T09:08:49.290 に答える