2016-06-24 2 views
1

https://stackoverflow.com/questions/22627392/extjs-fileuplaod-cross-origin-framePHPを使用したクロスオリジンエラーの解決?

サーバー側の言語がPHPの場合、どのように値を設定するか教えてもらえますか? JSONデータを取得する必要があります。私はフロントエンドでExtJSを使用しています。

COMPLETE SCENARIO:

私は、応答として、このファイルの内容を取得するサーバへのJSONファイルをアップロードするためのコードを持っていますが、アップロードした後、私は{success:false,message:"Blocked a frame with origin "http://localhost:1842" from accessing a cross-origin frame."} を取得しています。

クライアントコンピュータにあるjsonファイルを読むためのより良い解決策がある場合は、それも役立ちます。私が使用しています

コードは次のとおりです。

function(){ 
    var form = this.up('form').getForm(); 
    if(form.isValid()){ 
    form.submit({ 
     params: { 
     domain: document.domain 
     }, 
     url: 'http://MY-IP/phpfileupload/file.php', 
     waitMsg: 'Graph Uploading', 
     success: function(fp, action) { 
    }, 
    failure: function(fp, action) { 
    } 
    }); 
} } 

答えて

1

あなたはジャバスクリプトのセキュリティ機能である、same origin policyに走りました。

あなたはjavascriptを経由して何かを要求した場合、それがなければならない:

  • サブドメイン
  • 含む同じホスト名と同じプロトコル
  • 同じポート

そうでなければ上記の例外が発生します。

あなたはこの問題を回避することができます:クロスサイトへのアクセスを定義し

  • 使用CORS(これはあなたがHTTPヘッダー情報を追加するために、外国のWebサービスへのアクセスを持っていなければならないことを意味する)
  • またはリバースプロキシを作成し、外部サーバは、右スタート
から同じサーバー上のものを行う、
  • たりすることができます場合は(これはあなたがあなたの側でWebサーバのアクセスを必要とする意味)と同じドメイン上にあるものとして表示させます
  • 関連する問題