Angularjs:当凭据标志为真时,通配符’*’不能用于“Access-Cont
我知道有很多关于CORS的问题,但他们似乎没有回答我的问题.
所以我有一个用AngularJS编写的客户端应用程序,用于创建一个移动应用程序(与Apache Cordova).将从移动设备加载html文件和JavaScript文件. 现在,当凭证标志为真时,我得到“通配符”*’不能用于“访问控制允许原始”标头. 我终于找到了一个解决方案,但我不知道这样做是安全的. 在我的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添加到允许的方法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |