2012-02-10 23 views
1

私は私が理解this記事を、読んだ後クロスドメインAjaxの呼び出しを可能にするために、私はアクセス制御 - 許可 - オリジンするサーバの応答を設定する必要がある:*(テストの目的のためのパブリック)、ここでは私のサーバーのコードは、Google AppEngineのは、PythonクロスドメインAJAX

self.response.headers.add_header('Access - Control - Allow - Origin:*') 
self.response.headers.add_header('content-type', 'application/json', charset = 'utf-8') 
self.response.out.write(simplejson.dumps(Jsonobject)) 

であることが正しいかどうかはわかりません。そして私のAjaxコール

xhr.open("get", "http://example.com", true); 
xhr.setRequestHeader("Access-Control-Allow-Origin","example"); 

私はいつもこのエラーがあります。 Originのnullは、Access-Control-Allow-Originによって許可されていません。どうすれば設定できますか?あなたは、私は、多分self.response.headers.add_header(key, name)self.response.headers.add_header(str)が有効であることはよく分からないAccess - Control - Allow - Origin

  • Access-Control-Allow-Originを使用する必要はありません

  • 答えて

    2
    1. ありがとうございましたか!
    2. *ドメインが動作しません(少なくとも一部のブラウザでは動作しません)。正確なドメイン、フルネーム、プロトコルを使用する必要があります。 Like http://example.com
    3. あなたはajax呼び出しのためにOriginヘッダーが必要です。 raw xhrの設定方法がわかりませんが、ブラウザ自体で作成されていると思います。この値を変更することはできません。とにかく、あなたのドメインではないexample
    4. ほとんどのIEとOperaブラウザでは機能しないことを忘れないでください。
    +0

    と私はそれを修正することを行うことができます。あなたの時間をありがとう、本当にそれを感謝します。 –

    0

    これらのコード行が問題を解決することがあります。

    これは、Access-Control-Allow-Originを設定する必要があるだけです。& CustomeHeadersのAccess-Control-Allow-HeadersがWebサービスのweb.configファイルです。

    <add name="Access-Control-Allow-Origin" value="*" /> 
    <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
    

    だけ特定のドメインを許可したい場合は、特定のドメインの値の代わりに、*値

    関連する問題