0

私はコードの小さなサンプルに取り組んでいますが、やりたいことをするのに問題があります。

ここにコードのサンプルがあります。インターネットでその一部を見つけて、それを使用しようとしました。

上記の場合は完全に機能しますが、ターゲット URL が同じでない場合は機能しません

最初の例では、ターゲットは json を提供します。2 番目の例では、ターゲットは jsonp を提供します。

違いは、2 番目の例では、json を「true」値に設定したことです。なぜうまくいかないのかよくわかりません。

誰かが私にその原因を説明できれば」私はインターネットで見つけた多くのことを試しましたが、実際には何も機能しませんでした.

私の問題に時間を割いて、何が問題なのかを理解するのを手伝ってくれる人に感謝します;)

サンプル 1:

<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>Test</h1>
<script>
$.ajax({
type: 'GET',
dataType: "json",
processData: false,
crossDomain: true,
jsonp: false,
url: "http://flxn.eu/json.php",
success: function (responseData, textStatus, jqXHR) 
{
    console.debug(responseData);
    $.each(responseData, function (index, value) {
            console.debug(value);
            $('body').append(value.name + '<br />' + value.address + '<br />' + value.city + '<br />' + value.postcode + '<br />' + '<br />');
        });
},
error: function (responseData, textStatus, errorThrown) {
    alert('POST failed.');
}
});
</script>
</body>
</html>

サンプル 2:

<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>test jsonP</h1>
<script>
$.ajax({
type: 'GET',
dataType: "json",
processData: false,
crossDomain: true,
jsonp: true,
url: "http://widget.mondialrelay.com//parcelshop-picker/v3_0/services/parcelshop-picker.svc/SearchPR?Brand=BDTEST%20%20&Country=FR&PostCode=62620&ColLivMod=24R&Weight=&NbResults=7&SearchDelay=&SearchFar=75&=Zone_Widget&VacationBefore=&VacationAfter=&Service=&Latitude=&Longitude=&method=jQuery16206304910685867071_1380876031038&_=1380879686732",
success: function (responseData, textStatus, jqXHR) 
{
    console.debug(responseData);
},
error: function (responseData, textStatus, errorThrown) {
    alert('POST failed.');
}
});
</script>
</body>
</html>
4

2 に答える 2

1

JSONP コールバック名を配置する場所を jQuery に指示する必要があります。

URL パラメータを に変更します&method=?

于 2013-10-08T11:50:12.983 に答える
0

これはjsonpクロスドメインの実例です

jqueryを使用したjsonp

それはあなたが探しているものですか?

クエリ文字列でリクエストした場合

 ?callback=my_callback_method

次に、サーバーは次のようにラップされたデータを応答する必要があります。

my_callback_method({your json serialized data});

参照: jQuery を使用してクロスドメイン ajax JSONP リクエストを作成する

うまくいけば、あなたのjsonがうまくいくなら、これはうまくいくでしょう。

<!doctype html>
<html>
<head>
<title>JSONP example</title>
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
</head>
<body>
<h1>test jsonP</h1>
<script>
var url = 'http://widget.mondialrelay.com//parcelshop-picker/v3_0/services/parcelshop-picker.svc/SearchPR?Brand=BDTEST%20%20&Country=FR&PostCode=62620&ColLivMod=24R&Weight=&NbResults=7&SearchDelay=&SearchFar=75&=Zone_Widget&VacationBefore=&VacationAfter=&Service=&Latitude=&Longitude=&method=jQuery16206304910685867071_1380876031038&_=1380879686732?callback=?';
$.ajax({
   type: 'GET',
    url: url,
    async: false,
    jsonpCallback: 'jQuery16206304910685867071_1380876031038',
    contentType: "application/json",
    dataType: 'jsonp',
    success: function(json) {
       console.dir(json.PRList);
    },
    error: function(e) {
       console.log(e.message);
    }
});
</script>
</body>
</html>
于 2013-10-08T11:51:53.727 に答える