大佬教程收集整理的这篇文章主要介绍了Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
所以我有一个用AngularJS编写的客户端应用程序,用于创建一个移动应用程序(与Apache Cordova).将从移动设备加载html文件和JavaScript文件.
当我模拟它,我发送请求到REST API服务器我第一次得到
所请求的资源上不存在“Access-Control-Allow-Origin”头,因此原址’http:// localhost:82’不允许访问.
所以我添加了标题(“Access-Control-Allow-Origin:*”);在我的PHP REST API服务器.由于请求将来自移动设备,因此我无法指定特定的域.
现在,当凭证标志为真时,我得到“通配符”*’不能用于“访问控制允许原始”标头.
if (isset($_SERVER['http_ORIGIN'])) { header("Access-Control-Allow-Credentials: true"); header("Access-Control-Allow-Origin: " . $_SERVER['http_ORIGIN']); header("Access-Control-Allow-Headers: *,X-requested-With,Content-Type"); header("Access-Control-Allow-Methods: GET,POST,deletE,PUT"); }
请告知这种工作方式.如果不安全或没有好处,请告诉我如何解决这个问题?
非常感谢!
就安全而言,请注意这个post about CORS的@Jules的评论:
另见以下例子:
Wildcard not accepted in Access-Control-Allow-Headers
Specify headers Access-Control-Allow-Headers
替代方法
您可以将origin标题设置为:
Access-Control-Allow-Origin: *
如果您不需要在您的请求中包含Cookie remove:
Access-Control-Allow-Credentials: true
从Access-Control-Allow-Headers中删除通配符并添加授权,然后将该标头作为您的授权请求的一部分,而不是将凭据传递给cookie,例如:
Authorization: Basic a2lkMT==
以上是大佬教程为你收集整理的Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头全部内容,希望文章能够帮你解决Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。