それは依存しています。あなたはb.com
言う上にあり、Webサービスが上に配置されている場合、しかし、
$.ajax('path-to-your-service/WebMethodName', data, function(r){
// Success callback, you have your answer in r.d object
}, function(e){
// Error callback
});
:あなたは、ドメインa.com
に言っていると、Webサービスも同じ場所に配置されている場合は、単にそれをこの方法で行うことができますa.com
の場合は、Same-Domain Policyという概念で制限されています。つまり、特定の規則に従わない限り、AJAX呼び出し(またはXMLHttpRequest)を使用してそのWebサービスからデータをフェッチすることはできません。 1つはAccess-Control-Allow-Origin HTTPヘッダーフィールドを使用することです。これにはブラウザにいくつかの問題があります。もう1つの方法は、JSONPを使用することです。サーバーでサポートする必要があります。
JSONPを使用するには、jQueryの$.getJSON()
メソッドを使用し、HTTP GET経由で送信されたパラメータの横にコールバッククエリ文字列キーを用意する必要があります。 、
$.getJSON('path-to-your-service?x=some&y=thing?callback?', function(r){
// Success callback. Your JSON object would be the r parameter
});
は、私は、Webサービスの作成者である場合は、JSONPを使用することをお勧めします、とあなたは、.NETフレームワークを使用している場合、私はまた、あなたは、単に代わりに、Webサービスのジェネリックハンドラ使用することをお勧めしますWebサービスの設定に多くの問題があったためです。ただし、サーバーのコードでは、あなたはコールバックと呼ばれるクエリ文字列のキーの着信GETリクエストを確認する必要があり、それが存在する場合は、関数内でこの方法をご返却JSONをラップする必要があります。
JSONPを理解
callback({
a: a1,
b: b1,
c: c1
});
(概念とそれが起こる方法)は非常に重要です。深い理解がなければ、あなたの将来のメンテナンスは大きな負担になるでしょう。私は読むことをお勧めしますthis質問。
いいえ、今すぐ別のドメインへの呼び出しです。 – xybrek