2016-11-17 12 views
2

クライアントページからCORSリクエストを行いたいとします。私はウェブ開発に慣れていないので、特定のアプリケーション開発のために角度を使用していますが、私はこの問題を研究し始めました。まず、JavaScriptの初めにそれを行うべきだと思いました。 enable-cors.orgには、Firefox(v 46以降)とChrome(v 51.以上)の両方がCORSをサポートしているという表があります。 html5rocks.comでは、作成されたXMLHttpRequestオブジェクトが "withCredentials"プロパティを持っていることをチェックすることで、ブラウザがCORSをサポートしているかどうかを確認できます。だから私は「withCredentials」プロパティのXHRオブジェクトとチェックを作成し、コンソールに結果をロードする非常に単純な関数を書いた、と私はHTMLボタンを経由して関数を呼び出し、このような:xhrオブジェクトにFirefoxとChromeの「withCredentials」プロパティがありません

'use strict'; 
 

 
var corsPostRequest = function(){ 
 

 
    console.log("test"); 
 
    
 
    var xhr = new XMLHttpRequest(); 
 
    var lookInside = xhr.hasOwnProperty("withCredentials"); 
 
    console.log(lookInside); 
 
    
 
    if (xhr.hasOwnProperty("withCredentials")) { 
 
     console.log("we \'re good to go.."); 
 
    } 
 
};// end of corsPostRequest
<!DOCTYPE html> 
 
<html lang="en"> 
 
<head> 
 
    <meta charset="utf-8"> 
 
    <script src="javascripts/corsTest.js"></script> 
 
</head> 
 
<body> 
 
    <button id="submit_entry" onclick="corsPostRequest()">POST</button> 
 
</body> 
 
</html>

私はコンソールに取得していた結果は次のとおりです。

テスト

これは、xhrオブジェクトには "withCredentials"プロパティがないため、corsが使用できないことを意味します(?)。私はFirefox(v 50.0)とChrome(v 54.0.2840.71)の両方でこれを試しましたが、私は同じ結果を得ていますが、どちらのブラウザも少なくとも上記のリンクに従ってください。だから私は質問したい:

1)これは私が動作しているWindows 10のブラウザの問題ですか? 2)これらの状況下でコルスを行う方法はありますか? 3)angularjsには問題を回避する手段がありますか?

ありがとうございます。

+2

ただ割り当てます。すべての現代的なブラウザをサポートしています。 –

答えて

1

xhr.hasOwnProperty(「withCredentials」)は

ここにあなたの間違いは、あなたはそれが自分の財産ではなく、プロトタイプから継承されたゲッター/セッターのペアであると仮定されていることです。

"withCredentials" in xhr // true 
+0

ありがとうございました。この悪いJSLintは、代わりにhasOwnPropertyを使うべきだと提案しました。私はこの縫い目に注意を払っていませんでした。そして、私はJSLintから十分に見ていたと思った... –

関連する問題