我想从客户端页面执行CORS请求。由于我是网络开发的新手,虽然我使用角度来进行特定的应用程序开发,但我开始研究这个问题,我认为我应该先用普通的javascript来完成。在enable-cors.org中,有一个表格表明Firefox(第46版和更新版本)以及Chrome(第51版和更新版本)都支持CORS。 在html5rocks.com中,他们说你可以通过检查创建的XMLHttpRequest对象是否具有" withCredentials"来检查浏览器是否支持CORS。财产(暂时离开IE吧)。所以我编写了一个非常简单的函数,它创建了一个xhr对象并检查" withCredentials"属性并在控制台上加载结果,我通过html按钮调用该函数,如下所示:
'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>
&#13;
我进入控制台的结果是:
测试
假
这意味着xhr对象没有&#34; withCredentials&#34;财产和因此不可能(?)。我在Firefox(v 50.0)和Chrome(v 54.0.2840.71)中都尝试了这个,但我得到了相同的结果,尽管两个浏览器都应该这样做,至少根据我上面提到的链接。所以我想问:
1)这可能是Windows 10浏览器的问题(我正在操作)吗? 2)在这些情况下,有没有办法做角色? 3)angularjs有办法解决这个问题吗?
提前致谢。
答案 0 :(得分:1)
xhr.hasOwnProperty(&#34; withCredentials&#34)
你的错误在于你假设它是一个属性而不是从原型继承的getter / setter对。
"withCredentials" in xhr // true