私はuser1.mydomain.com
とuser2.mydomain.com
のドメインを持っています。私はapi.mydomain.com
を使って、AJAX/JSON上の私のWebアプリケーションを扱います。だから私はからapi.mydomain.com/projects
へのPOST要求を以下のようなjQUeryを使って作成したい:{'action':'getActiveProjects'}
結果としてJSONのuser1のアクティブなプロジェクトのリストを取得する。私は$.getJSON
メソッドを見つけましたが、サーバーにデータを送信するためのオプションがないようです。ちょうどGETメソッドです。私が直面しているもう一つの問題は、同じ起源政策です。だから、私は別のサブドメイン上のサーバーにいくつかのJSONをPOSTして、結果としてJSON応答を得ることができますか?jQueryを使用してサブドメインからJSONを取得
答えて
を指定して$.ajax
とJSON-Pを使用します。リンクされたドキュメントの詳細。あなたのサーバーはJSONだけでなくJSON-Pで応答する必要がありますが、サーバーを制御することは非常に簡単です。
また、最新のブラウザ(IEではなく)のみをサポートする必要がある場合は、CORSをサポートするようにサーバーを設定することができます。しかし、これは最近のブラウザでのみサポートされています。IE8はそれをサポートしていますが、通常のXMLHttpRequest
オブジェクトを透過的にサポートしていませんが、jQueryが自動的に処理しない全く別のトランスポートオブジェクト(XDomainRequest
) )。ここで
はjQueryのを使用してJSON-Pの例です:サーバー上
$.ajax({
// The source URL
url: "http://jsbin.com/ubucu4",
// Tell jQuery you're doing JSON-P
dataType: "jsonp",
// Include some data with the request if you like;
// this example doesn't actually *use* the data
data: {some: "data"},
// You can control the name of the callback, but
// usually you don't want to and jQuery will handle
// it for you. I have to here because I'm doing this
// example on JSBin.
jsonpCallback: "exampleCallback",
// Success callback
success: function(data) {
display("Received data, typeof data = " + typeof data);
display("data.foo = " + data.foo);
display("data.bar = " + data.bar);
},
// Error callback
error: function(jxhr, status, err) {
display("Error, status = " + status + ", err = " + err);
}
});
、あなたは、例えば、jQueryのURLにcallback
パラメータを追加していることがわかります上記の場合はhttp://jsbin.com/ubucu4?callback=exampleCallback
になりますが、jQueryの制御が好きな場合は、その名前がもう少しエキゾチックになります。サーバーサイドのコードは、JavaScript関数呼び出しである応答を作成し、その関数を呼び出す必要があります。上記の例では、私の応答がある:
exampleCallback({
"foo": "This is foo",
"bar": "This is bar"
});
この代わりSame Origin Policyを受けるXMLHttpRequest
を使用する、JSON-Pは、(微細である)動的に追加script
タグを使用しているため、すべてが起こります。私の例では、タグがあなたのJSON-P応答であるスクリプトを取得し、それを実行します
<script type='text/javascript' src='http://jsbin.com/ubucu4?callback=exampleCallback'></script>
ブラウザのようになります。つまり、コールバックが呼び出され、データがスクリプトに渡されます。
あなたのJSON-Pレスポンスは、技術的にはJSONではありません。それはJavaScriptであり、その理由から、コードに直接ページに注入するので、あなたが信頼するサーバー(たとえば、自分のサブドメインサーバー)でJSON-Pを使用することが不可欠です。それ以外の場合、信頼できないサーバーを使用している場合、注入されたコードがページから情報を読み取り、それを第三者に送信する可能性があります。あなたの見出しに注意してください。
- 1. jQueryを使用してJSONからオブジェクトを取得
- 2. javascript/jqueryを使用してjson変数からjson文字列名を取得
- 3. jQueryを使用したWikipedia APIからのJSONデータの取得
- 4. jQueryを使用してJSONから属性値を取得する方法
- 5. jquery、ajaxを使用してJSONオブジェクトからarraylistを取得する
- 6. jQueryとserializearray()を使用してフォームからJSON配列を取得
- 7. このJSON文字列からjQueryを使用して値を取得する
- 8. 別のドメインからjQueryを使用してJSONを取得する方法
- 9. Javascript/JqueryのURLを使用してSSHサーバーからJSONデータを取得
- 10. jQueryからJSONを取得しています - Foursquare APIから
- 11. Jqueryを使用してJSONのデータを取得します
- 12. jqueryを使ってPHPからjson配列を取得
- 13. AngularJS:AJAXを使用してサーバーからjsonを取得します
- 14. JQueryを使用してJSONデータをhtmlに取得
- 15. jQuery APIを使用してJSON応答を取得
- 16. jQueryを使用してJSON経由でデータを取得する
- 17. JSONを使用してjQueryフォームプラグインを取得
- 18. jquery jsonを使用してyoutubeのビデオタイトルを取得する
- 19. JQUERYを使用してJSONでサブアイテムと値を取得
- 20. jqを使用して別のjsonからフィールドを取得
- 21. PHPを使用してJSONデータから値を取得する
- 22. Retrofit 2.1を使用してJSONからリストを取得
- 23. react.jsを使用してAPI関数からjsonデータを取得
- 24. JSONを使用してデータベースから情報を取得
- 25. javascriptを使用してJSONデータを取得する(Tumblrから)
- 26. pythonを使用してneo4jからjson応答を取得
- 27. JSONを使用してYahooのAPIからデータを取得
- 28. RESTクライアントを使用してJSONから値を取得
- 29. アンドロイドスタジオを使用してクラウドからjsonデータを取得
- 30. sedを使用してdivタグからjsonデータを取得
を設定します。サブドメインのコンテンツを配信するiframeとの通信を可能にするために使用されます。この質問に対する正解は、JSONPまたはCORSだけです。 –