コード スニペットでは、JSON データを解析しようとしています。 jQuery の AJAX 機能を使用して、別のドメインでホストされているサービス。ただし、クロスドメイン AJAX リクエストが正常に機能するには、追加の考慮事項が必要です。
デフォルトでは、ブラウザは AJAX リクエストを同じオリジン URL に制限します。セキュリティ上の懸念のため。これを解決するには、JSONP (JSON with Padding) を実装する必要があります。これにより、<script> を使用してクロスドメイン リクエストを行うことができます。 tag.</p>
<p><h3>メソッド インジェクション</h3></p>
<p>サーバー側のコードでは、メソッド インジェクションをサポートする必要があります。 「dataType: 'jsonp」で jQuery を使用すると、ランダムに生成されたメソッド名を持つクエリ パラメーターが URL に追加されます。次に、サーバーは、このメソッド名を使用して JSON 応答を関数呼び出しとしてラップする必要があります。</p>
<p><h3>修正コード</h3></p>
<p>サーバーが JSON 応答を正しくラップしていることを確認してください。クエリ文字列で渡されるメソッド名。たとえば、クエリ文字列に ?callback=my_callback_method が含まれている場合、サーバーは次のように応答する必要があります:</p>
<p>my_callback_method({your json シリアル化データ});</p>
<p>これが実装されたら、jQuery コードは次のように応答する必要があります。 JSON データを正常に解析します:</p>
<p><br><script type="text/javascript"><br>var result;<br>function jsonparser1() {</p>
<div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false">$.ajax({
type: "GET",
url: "http://10.211.2.219:8080/SampleWebService/sample.do",
dataType: "jsonp",
success: function (xml) {
alert(xml.data[0].city);
result = xml.code;
document.myform.result1.value = result;
},
});</pre><div class="contentsignin">ログイン後にコピー</div></div>
<p>} <br></script>
以上がjQuery を使用してクロスドメイン AJAX JSONP リクエストを行うにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。