1

JSON サービスを使用するモバイル サイトを開発しました。クロスドメインであるため、JSONP を使用します。動いていたのに突然壊れてしまい、その理由がわかりません。ブラウザで検査できるものは次のとおりです。

私のJavascript呼び出し:

$.ajax({
url: apiBaseURL + "getoperators?appKey=" + appKey,
dataType: 'jsonp',
success: function(data) {
    console.log(data);
},
    error: function(jqXHR, textStatus, errorThrown) {             }
});

応答を表示すると、次のように正しく形成されているようです。

{"GetOperatorsResult":{"Error":"","Results":[{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"Golden Arrow" },{"City":"Cape Town","IsPublic":true,"Mode":"Shuttle","Name":"Jammie Shuttle"},{"City":"Cape Town","IsPublic": true,"Mode":"Train","Name":"Metrorail"},{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"MyCiti" }],"ステータス":"成功"}}

ネットワーク監査は次のとおりです。

リクエストURL:http://api.wimt.co.za/v1/json/public.svc/getoperators?appKey=EB478338-73C7-483F-8AB4-B4DE2219D4DC&callback=jQuery18208015921225305647_1350479608882&_=1350479608950 リクエスト方法:GET リクエストステータスコード: Headersview のソース Accept: / Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3 Accept-Encoding:gzip,deflate,sdch Accept-Language:en-US,en;q=0.8 Cache-Control:max -age=0 接続:keep-alive ホスト:api.wimt.co.za リファラー:http://localhost:8300/index.html ユーザーエージェント:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML 、Gecko のような) Chrome/22.0.1229.94 Safari/537.4 クエリ文字列パラメーターview URL エンコードされた appKey:EB478338-73C7-483F-8AB4-B4DE2219D4DC コールバック:jQuery18208015921225305647_1350479608882 _:135th0.1229.94 Safari/537.4 レスポンス charset=utf-8 Date:Wed, 17 Oct 2012 13:13:43 GMT サーバー:Microsoft-IIS/7.5 X-Powered-By:ASP.NET

ローンチの 1 日前に、完全に機能していたものが壊れてしまい、私の人生では何を解決することができません。エラーは web.config にある可能性がありますが、適切なヘッダー/エンドポイントがすべてそこにあります。

誰か助けてください。ありがとうございました!

4

1 に答える 1

2

リモート API は JSONP ではなく、プレーンな JSON を送信するようになりました。有効な JSONP 呼び出しでは、応答をコールバック名でラップする必要があります。

jQuery18208015921225305647_1350479608882({"GetOperatorsResult":{"Error":"","Results":[{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"Golden Arrow"},{"City":"Cape Town","IsPublic":true,"Mode":"Shuttle","Name":"Jammie Shuttle"},{"City":"Cape Town","IsPublic":true,"Mode":"Train","Name":"Metrorail"},{"City":"Cape Town","IsPublic":true,"Mode":"Bus","Name":"MyCiti"}],"Status":"Success"}})

JSONP 呼び出しを指定する方法を理解するには、API の所有者に連絡するか、ドキュメントを読む必要があります。

于 2012-10-17T13:56:43.900 に答える