2013-11-23 1 views
12

私はフロントエンド開発者です。私はクライアント側でのみコーディングしているので、エラーが存在するかどうかはわかりません。私はCORSについて調べてきましたが、私の問題のコースは何のせいも考えていませんでした。http://のXMLHttpRequest必要なクロスソースリソース共有(CORS)およびプリフライトはIEでのみ発生します

私はRESTにデータを投稿しようとしています。 firedfoxの放火犯でWebサービスショーの

$.ajax({ 
    url  : urlPost, 
    type  : "POST", 
    data  : JSON.stringify(obj), 
    dataType : "json", 
    contentType: "application/json", 

    success: function(res){ 
     console.log(JSON.stringify(res)); 
    }, 

    error: function(res){ 
     console.log("Bad thing happend! " + res.statusText); 
    } 
}); 

ヘッダ:

enter image description here

これは、IE 10を除いて、私が使用するすべてのブラウザのために働いて、私は2つのエラーを得ました

  1. SEC7118:http://mysite/project/wl.svc/AddWL/のXMLHttpRequestが必要です。クロスソースリソース共有(CORS)。

  2. SEC7119:XMLHttpRequest for http://mysite/project/wl.svc/AddWL/ CORSプリフライトが必要です。

+0

urlPostは、ドキュメントがロードされたドメインと同じドメインにありますか? SSLを使用していますか?ドキュメントはIFRAME内にありますか? いずれにしても、CORSはサーバからの特別なヘッダーを必要とします。クライアント側からのみ設定することはできません。 –

+0

しかし、Chromeを使用するとうまくいき、Internet Explorerを除いてFirefoxがうまく動作します。 – Nothing

+0

urlPostは、ドキュメントを読み込むドメインとは異なるドメインにあります。私はヘッダーで質問を更新しました。 – Nothing

答えて

-2

はjQueryのためのソリューションがありますが、あなたはリクエストを送信するために完全なURLを使用する必要があります(例えば。http://www.mysite.com/project/wl.svc/AddWL/)を、それが脆弱性であるbecuase。

$.support.cors = true; 
$.ajax({ 
    url:urlPost, 
    type:"POST", 
    crossDomain: true, 
    data:JSON.stringify(obj), 
    dataType:"json", 
    contentType: "application/json", 
    success:function(res){ 
     console.log(JSON.stringify(res)); 
    }, 
    error:function(res){ 
     console.log("Bad thing happend! " + res.statusText); 
    } 
}); 
関連する問題