ajaxを介してjsonを受信する際に問題が発生しました。エラーは以下のとおりです。エラーに関してこれまでに見つけた情報によると、これはある種のクロスドメインの問題のようですが、それが何を意味し、どのように解決するのかわかりません。
応答ヘッダーに問題がある可能性があります(私はAPIを自分で作成し、以前から経験がありません)が、ブラウザーでURLに直接アクセスすると200OKが受信されます。
ブラウザでURLに直接アクセスする場合、有効なjsonが表示されるので、問題はありません。
これはどのように解決できますか?
注:URLはApacheサーバーに送信されますが、この問題について読んだStackの質問の95%に当てはまるファイルではありません。
インスペクターのエラー:
XMLHttpRequest cannot load http://localhost/api/v1/products?_=1355583847077.
Origin null is not allowed by Access-Control-Allow-Origin.
Error: error
コード:
$.ajaxSetup ({
url: "http://localhost/api/v1/products", // <--- returns valid json if accessed in the browser
type: "GET",
dataType: "json",
cache: false,
contentType: "application/json"
})
$.ajax({
success: function(data){
console.log("You made it!");
},
error: function(xhr) {
console.log("Error: " + xhr.statusText);
}
}).done(function(data){
console.log(data);
})
パラメータ
_ 1355583610778
ヘッダー
応答ヘッダー:
Connection Keep-Alive
Content-Length 3887
Content-Type application/json
Date Sat, 15 Dec 2012 14:50:53 GMT
Keep-Alive timeout=5, max=100
Server Apache/2.2.14 (Unix) DAV/2 mod_ssl/2.2.14 OpenSSL/0.9.8l PHP/5.3.1 mod_perl/2.0.4 Perl/v5.10.1
X-Powered-By PHP/5.3.1
リクエストヘッダー:
Accept application/json, text/javascript, */*; q=0.01
Accept-Encoding gzip, deflate
Accept-Language sv-SE,sv;q=0.8,en-US;q=0.5,en;q=0.3
Connection keep-alive
Host localhost
Origin null
User-Agent Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:17.0) Gecko/17.0 Firefox/17.0
応答
ここには何もない...