2010-11-24 4 views
0

私が正確に構築しようとしているのは、ユーザーが自分のサイトに投稿要求を送信してブラウザ上に応答を表示できるインターフェースです。例クロスサイトAJAXリクエスト

$.post(
    'http://www.mysite.com/thirdpartyrequest.php', 
    { param1: value1, param2: value2 }, 
    function(data) { 
     $("#universalid").html(data);//Update with the response 
    } 
); 
//however it is not allowed. 

答えて

4

あなたの最善の策は、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 
}); 
+0

これはJSONP APIについて言います。その作成方法 – Starx

+0

例を使って答えを更新しました。 –

+0

PHPを使って.JSONファイルを作成できますか?しかし、 'receive_this({'some':['fancy'、 'json']、 'structure:'ここ '});'を出力するには '' json_encode'はそのフォーマットで配列を出力できます。 – Starx