2011-08-03 11 views
5

私はそこに誰かが私を助けることを望んでいます。私は非常に基本的なことをしようとしています:MVC3コントローラからJsonを取得するためにJqueryを使用します。私は、ブラウザから直接http://www.youtipit.org/api/GetTipitByUrl?url=http://utipi.it/t/1834 URIを呼び出した場合、コントローラは、JSONの罰金を返しますが、私は次の操作を行うことを試みるとき、私は(Firebugの中で)空の結果を得る:放火犯でMVC3コントローラからJsonを取得するためのAjaxコール

$.getJSON('http://www.youtipit.org/API/GetTipitByUrl?url=http://www.youtipit.org/t/J1833', null, 

       function(data) { 

        if (data) { 
        alert('It Works!!'); 
        alert(data); 
        } 
       }); 

iが200コードを取得するが、応答は空です。私はJavascriptでこれを動作させるために簡単にできることがあると確信していますが、これは初めてです。

答えて

4

おそらくsame origin policyの制限に違反している可能性があります。あなたのサイトがwww.youtipit.orgでホストされていない限り、AJAXリクエストを送ることはできません。

  • リモートサイトがJSONPをサポートしています(JSONとの違いに気付く)JSON応答は特別なコールバック関数でラップされた場合にはこの制限には2つの可能な回避策があります。これを動作させるには、リモートサーバーがそれをサポートしている必要があります。このような場合は、APIのドキュメントを確認してください。表示した例のURLとブラウザで動作するurlは、JSONを返します。
  • リモートサーバーがJSONPをサポートしておらず、XMLまたはJSONのみを送信する場合は、ドメインとリモートドメインの間のブリッジとして機能するコントローラアクションをドメインに作成する必要があります。次に、AJAXリクエストをこのコントローラアクションに送信します。コントローラリクエストは、WebClientを使用してリモートドメインにHTTPリクエストを送信します。
+0

偉大な答え....私は正しい方向に私を指摘しています。あなたはJSonpを使って提案するのは当然でした。 この投稿はJSONPの結果を実装する方法を示していましたが、現在私のJsonを取得しています。 [link] http://stackoverflow.com/questions/4795201/asp-net-mvc-3-jsonp-does-this-work- with-jsonvalueproviderfactory [/ link] 時間を節約してくれてありがとうございました。もしあなたが興味があれば、[link] http://www.youtipit.org [/ link](私は他者をオンラインで助ける人々に報いるために私がcofoundedしたサイトであることに注意してください)にビットコツのヒントを与えるでしょう。 もう一度ありがとうございます。 – kSeudo

関連する問題