Sha*_*aka 5 javascript cors angularjs
我们正在实现一个基于AngularJS的应用程序,该应用程序使用托管在不同域中的休息Web服务.以下脚本用于CORS,它在Chrome和FireFox上运行良好.在进行身份验证时,它在IE9和Safari中存在问题.似乎问题在于那些浏览器中的withCredentials属性.有没有其他方式IE和Safari支持CORS?
<script type="text/javascript">
XMLHttpRequest.prototype.realSend = XMLHttpRequest.prototype.send;
XMLHttpRequest.prototype.send = function(vData) {
this.withCredentials = true;
this.realSend.apply(this, arguments);
};
</script>
Run Code Online (Sandbox Code Playgroud)
根据我们尝试的不同场景,我们可以得出以下摘要.希望这会有用.
解决方案非常简单.默认情况下,IE和Safari已禁用第三方cookie.由于我们在用户输入登录凭据后使用两个不同的域,因此这些浏览器无法保存该cookie.因为所有其他请求都是未经授权的.
允许第三方cookie的步骤
由于这个问题,我们发现在AngularJS版本1.1.1+中,他们通过在'config'模块中设置'withCredentials'值来简化它($ httpProvider.defaults.withCredentials = true;)
| 归档时间: |
|
| 查看次数: |
2007 次 |
| 最近记录: |