2011-01-23 6 views
1

非常に単純なクロスドメインAPI呼び出しを行う必要があります。オーバーヘッド/互換性の理由から、完全な機能を備えたフレームワーク(jQueryなど)を使用したくないこのシンプルなAjaxリクエストは、私がする必要があるすべてのものです。 GETリクエストをhttp://bar.comに、http://foo.comのページから電話する必要があります。しかし、foo.comのHTTPヘッダーにアクセスすることはできません。私はブラウザにデータを返す必要はありません。 XMLHttpRequest - クロスドメインAPIコールのトラブル

現在(クローム上)にセンターコードhereall結果をやって:

XMLHttpRequest cannot load http://bar.com/api?=x. 
Origin http://foo.com is not allowed by Access-Control-Allow-Origin. 
http://bar.com/api?=x Failed to load resource 

ところで、この呼び出しはエラーをスローしていても、それがうまく伝わってくるbar.comに、その別のオプションは、基本的にはそのエラーをキャッチされますそれを無視する(?)。 JSにはなじみがないので、他のブラウザではこれが失敗するかどうかはわかりません。

この場合、http://code.google.com/p/xmlhttprequest/source/browse/trunk/source/XMLHttpRequest.js - これが私の使用のために完全に過剰であるかどうかはわかりません(オーバーヘッドはかなり重要です)。

答えて

3

XHR経由でアクセスできる特定のドメインを定義するようにHTTPヘッダーを設定しない限り、これは常に失敗します。あなたがこの問題を回避することができ

一つの方法は、スクリプトインジェクションを使用することです:不可解な事ザッツ

function load_script(loc) { 
    var s = document.createElement('script'); 
    s.src = loc; 
    document.getElementsByTagName('head')[0].appendChild(s); 
} 

load_script('http://bar.com/api?=x'); 
+0

を。注射でスクリプトを読み込んでいます(上記のように)。だから私はなぜこれが起こっているのか説明することができない。最初は、bar.comでホストされていなかったjQuery(テスト用)を使用していた可能性があります。しかし、これがなくても、そのアクセス制御エラーが発生しています.. – malangi

関連する問題