2011-02-03 10 views
2

APIにリクエストするjavascriptコードがあります。そして、リクエストはxmlを応答として吐き出します。 XMLHTTPRequestを使用してxmlを取得しています。Safari、Chrome、FirefoxでXMLHTTPRequest.send()に問題がある

Firebugでは、私はそれが失敗したことに気付き、例外をスローします。私は本当に何が起こっているのか分かりません。ここでFirebugのデモを見ると、コンソールウィンドウに表示されて失敗することがわかります。

ここで私が実行したコードだ、

xmlHttp = new XMLHttpRequest(); 
xmlHttp.open("GET", configgg, false); 
xmlHttp.send() 

私は行くいただきました!にオンライン手がかりを探していたとき、そこに別のドメインからの要求のものが動作しないときの問題についての話題だったし、問題がサーバー側であります。その場合、どうすれば(他のドメインでxmlhttprequestsを作成できるようにするのですか?) APIはGoogleのサーバーの1つにありますが、他のドメインからリクエストテストを行って動作させています。

+0

に私の作品を使用する必要があります:XMLHttpRequestがロードできないのhttp:/を/api.internetvideoarchive.com/Video/TitleSearch.aspx?DeveloperId=a92e6bd5-f9d0-4e03-91c4-3019c5614da4&OutputFormat=1&SearchTerm=Jaws。 Origin http://elvis.rowan.eduは、Access-Control-Allow-Originによって許可されていません。 – gnur

+0

@gnurにはすべてのドメインにアクセスできる方法がありますか? – Bombcode

答えて

1

他の回答で示唆されているように、別のドメインから何かにアクセスしようとしているという事実が、スクリプトの失敗の原因です。

これを修正するには、API URLの内容をエコーするローカルPHPスクリプトをロードして、JavaScriptの制限を回避することができます。

+0

elvis.rowan.eduのローカルPHPスクリプトですか?もしそうなら、私はFlashがcrossdomain.xmlを使用していることを知っていますが、Javascriptには何か類似していますか? – Bombcode

+0

ファイルをホストしていることが判明し、PHPのことがうまくいってサンプルテストに役立ちます。ありがとう! – Bombcode

+0

よろしくお願いします! – gnur

1

Same_origin_policyでは、ドメイン全体で通話することはできません。新しいブラウザを使用している場合はCORSを参照するか、プロキシを使用する必要がある場合や、JSONPを使用する必要があります。

ドメイン間コールを許可するようにブラウザのセキュリティを設定すると、ユーザーがウェブを使用してインターネットをサーフィンすると問題が発生することがあります。

+0

私が扱う予定のブラウザはすべてHTML5対応のブラウザです。だからうまくいけば、彼らは十分に新しくなるはずです。私はCORSを調べます。 – Bombcode

1

ここで誰もが歓迎する答えには、クロスドメインコールを許可しない同じ発信元ポリシーが含まれます。しかし、私は似たようなことを経験しており、あなたが探している答えではないことを知っています。

私はMSXML ServerXMLHTTPオブジェクトを使用してInternet Explorerでこれを行う方法を知っているが、限り他のブラウザでそれをしようとして、これをやってみてください:

xmlHttp = new XMLHttpRequest(); 
xmlHttp.open("GET", configgg, false); 
xmlHttp.setRequestHeader("Host", configgg); 
xmlHttp.send(); 
+0

ありがとう@ user535617クロムとFirefoxの運がない – Bombcode

0

私はそれが失敗だ理由があると思うときがあるためgetComputedStyle

xmlHttp.send(null); 

これは、同様に、いくつかの他の方法で発生しますが、が含まれていない場合も失敗した:「sendメソッドを使用しますが、任意の引数を含まない再、あなたはそうのように、それをnullを伝える必要があります第2引数として)。

+0

send()にはパラメータは必要ありません。ほとんどのブラウザでは、nullなしで動作するので、ここでは問題はありません。 – gnur

+0

[何を喫煙しますか?](http://i56.tinypic.com/969vnp.png) – epascarello

0
var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open('GET','baselead.xml',false); 
    xmlhttp.setRequestHeader('Content-Type', 'text/xml'); 
    xmlhttp.send(''); 

あなたが「baselead.xml」qoute(「」)あなたはこのエラーを見ているだろうデバッグするためのGoogle Chromeを使用している場合、それはクロム

関連する問題