Angularjs   发布时间:2022-04-20  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我知道有很多关于CORS的问题,但他们似乎没有回答我的问题.

所以我有一个用AngularJS编写的客户端应用程序,用于创建一个移动应用程序(与Apache Cordova).将从移动设备加载html文件JavaScript文件.
当我模拟它,我发送请求到REST API服务器我第一次得到
所请求的资源上不存在“Access-Control-Allow-Origin”头,因此原址’http:// localhost:82’不允许访问.
所以我添加标题(“Access-Control-Allow-Origin:*”);在我的PHP REST API服务器.由于请求将来自移动设备,因此我无法指定特定的域.

现在,当凭证标志为真时,我得到“通配符”*’不能用于“访问控制允许原始”标头.

我终于找到了一个解决方案,但我不知道这样做是安全的.

在我的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");
}

请告知这种工作方式.如果不安全或没有好处,请告诉我如何解决这个问题?

非常感谢!

响应应该仅在Access-Control-Allow-Headers中具有接受的标题,不要使用通配符.

就安全而言,请注意这个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==

另外,将OPTIONS添加到允许的方法.

大佬总结

以上是大佬教程为你收集整理的Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头全部内容,希望文章能够帮你解决Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Control-Allow-Origin”标头所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。