あなたの最善の策は、JSONPを使用することです、このようなクロスサイトAJAX要求を行うにはどのように任意のアイデアについては
。チェックアウト:
http://api.jquery.com/jQuery.getJSON/
http://en.wikipedia.org/wiki/JSON
次のようなデータを提供するサーバがある場合:あなたが要求URLでコールバックパラメータを提供することで、JSONPにこれを回す
http://my.server.com/somedata.json
{
'some': ['fancy', 'json' ],
'structure: 'here'
}
を - 事実上の標準名はcallback
です。その後、サーバー上で、このパラメーターをチェックし、そのコールバックで結果をラップする必要があります(効果的にjsonではなくjavascriptに変換します)。
<script type="text/javascript">
var receive_this = function(json) {
// do some stuff with data here.
};
</script>
<script type="text/javascript" src="http://my.server.com/somedata.json?callback=receive_this"></script>
:クライアントは今(概念的には)このようなJSONをロードします
http://my.server.com/somedata.json?callback=receive_this
receive_this({
'some': ['fancy', 'json' ],
'structure: 'here'
});
(niggly、JSONのレスポンスのMIMEタイプは、JSONPためながらapplication/json
べきであるため、それがあるべきapplication/javascript
)
実際には、jQueryのようなものを使用して、jsonpリクエストスクリプトタグをDOMに動的に挿入します。 jQueryはデフォルトで、コールバックリクエストパラメータcallback
を呼び出します。
$.ajax({
url: 'http://my.server.com/somedata.json',
dataType: 'jsonp',
success: receive_this
});
これはJSONP APIについて言います。その作成方法 – Starx
例を使って答えを更新しました。 –
PHPを使って.JSONファイルを作成できますか?しかし、 'receive_this({'some':['fancy'、 'json']、 'structure:'ここ '});'を出力するには '' json_encode'はそのフォーマットで配列を出力できます。 – Starx