2012-03-10 15 views
0

私は非常に基本的なFacebookアプリケーションを作成していますが、クロスドメインAJAXリクエスト(jQueryを使用)に関する問題が発生しています。HTTP 200でのクロスドメインAJAXリクエストエラー

私はAJAX経由で呼び出しているcURLを介してグラフにリクエストを行うためにプロキシページを作成しました。私はブラウザのページにアクセスして正しい出力を見ることができますが、常にページをリクエストするとjQueryはエラーハンドラのコールバックを起動します。

だから私は二つのファイルがあります:cURLの要求

<?php 
//Do some cURL requests, manipulate some data 
//return it as JSON 
print json_encode($data); 
?> 

Firebugのショーでコールを点検このAJAX呼び出し

$.getJSON("http://myDomain.com/proxy.php?get=stuff", 
      function(JSON) 
      { 
       alert("success"); 
      }) 
      .error(function(err) 
      { 
       alert("err"); 
      }); 

が含まれているFacebookのキャンバスを、行い

プロキシを、 HTTPコード200 OKを返しますが、エラーハンドラは常に発生し、内容は返されません。 Content-Type: application/jsonを設定しても、を設定しなくても、これが発生します。

私はAJAXを使用する前にJSONを返すAPIをPHPで書いていますが、このような問題はありませんでした。

エラーハンドラを常にトリガするリクエストが発生する原因は何ですか?

答えて

0

最近、私は同じ問題を経験しました。私の問題は、SSLのためにウェブページとAPIのドメインの違いがあったということでした。

WebページはHTTPアドレス(http://myDomain.com)を持って、私はjQueryを使って要求されたコンテンツは、、同じドメインが、HTTPSプロトコル(https://myDomain.com)にありました。プロトコルのせいで、要求の応答タイプが "application/json"であったため、ブラウザ(この場合はChrome)はドメインが異なっていると考えました(最初はのHTTP、もう1つはHTTPS)ブラウザはそれを許可しなかった。

基本的にリクエストは正常に機能しましたが、ブラウザは応答内容を許可しませんでした。

アクセス制御許可の原点」ヘッダーを追加する必要がありました。同じ場合には、見てください:https://developer.mozilla.org/en/http_access_control

私はあなたを助けてくれることを願っています。私は頭痛があります。

+0

素晴らしい!ありがとう、それはそれをやったようです。 – AndyBursh

関連する問題