2011-01-17 8 views
1

XHTML(GETメソッドを使用)をChrome拡張機能からPHPページに送信したいのですが、コード、私はエラーを取得:クロムエクステンションからPHPページへXHRを送信するときのエラー:クロスオリジンリクエストがHTTPの場合のみサポートされます

"Cross origin requests are only supported for HTTP" 
    "XMLHttpRequest Exception 101" 

PHPのページがロード罰金私はエラーを起こさないファイルを見つけることができない、ブラウザで直接それを呼び出すとき。 これらのエラーのため、拡張機能からPHPページにデータを送信してデータベースに保存することができません。拡張機能のmanifest.json(権限の下)にhttps:// * /が含まれていますが、それでもうまくいかない。

このエラーを解決してリクエストを正常に送信する方法を教えてください。

PS:エクステンションが実行され、XHRを送信するページはHTTPSページですが、PHPはHTTPページです。これが問題の原因になることがあります。

+0

このコードはどこでバックグラウンドページで実行しますか? – serg

答えて

-1

できません。 XHRはthe same origin policyの対象となります。

代わりにJSONPを使用することもできます。

+0

こんにちはマーティン、応答ありがとう。拡張機能がウェブページとは違ったクロスオリジンXHRを送ることは可能だと思います。出典:http://code.google.com/chrome/extensions/xhr.html – Venkatesh

1

私はあなたがこれをContent-Scriptで行うことを前提としています。もしそうなら、そうすることはできません。それは同じ起源の政策に扱われます。 Chrome拡張機能でXHRリクエストを使用する場合は、拡張ページ(背景ページ)に配置します。

、いつあなたが、あなたが許可を得て、適切な試合のパターンを追加してください:たとえば

http://code.google.com/chrome/extensions/match_patterns.html

を、https://*/https://*/*する必要がありますし、あなたのXHRがあなたのコンテンツスクリプトが通信background pageにする必要がありますそれと一緒にmessaging

0

私はちょっと古いことを知っていますが、誰かがこのページに出会う場合があります。これはthis questionのレプリカです。

適切な権限が宣言されている場合は、コンテンツスクリプトからcross-origin-xhrを作成できます。

関連する問題