我知道已经有很多关于 CORS 的问题,但他们似乎没有回答我的问题。
所以我有一个用 Angular 编写的客户端应用程序,它将用于创建一个移动应用程序(使用 Apache Cordova)。html 文件和 JavaScript 文件将从移动设备加载。当我模拟它并向 REST API 服务器发送请求时,我首先得到“请求的资源上不存在‘Access-Control-Allow-Origin’标头。http://localhost:82
因此,Origin '' 不允许访问”。所以我添加了 header("Access-Control-Allow-Origin: *"); 在我的 php REST API 服务器中。我无法指定特定域,因为请求将来自移动设备。
现在我得到“当凭证标志为真时,不能在 '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");
}
请就这种工作方式提出建议。如果它不安全或根本没有好处,你能告诉我如何解决这个问题吗?
非常感谢!