gpt4 book ai didi

php - 在 codeigniter 中启用 cors(@chriskacerguis 的 restserver)

转载 作者:可可西里 更新时间:2023-11-01 13:03:44 26 4
gpt4 key购买 nike

当我的客户端应用程序和 api 在本地主机中时,agularJs Controller 中的 http.get 请求工作正常。当 api 被移动到服务器时,出现了问题。

客户端使用angularJs

$http.get('http://example.com/api/spots/2/0').success(function(data){
console.log(data);
});

日志给出:跨源请求被阻止:同源策略不允许在 http://example.com/api/spots/2/0 读取远程资源.这可以通过将资源移动到同一域或启用 CORS 来解决。

我已将这两行添加到我的 Controller 构造中

header("Access-Control-Allow-Origin: *");

header("Access-Control-Allow-Methods: GET");

还是一样的错误。

最佳答案

尝试将 OPTIONS 添加到允许的方法中。

header("Access-Control-Allow-Methods: GET, OPTIONS");
header("Access-Control-Allow-Headers: Content-Type, Content-Length, Accept-Encoding");

一旦您设置了 header ,当请求是方法“OPTIONS”时立即返回。

if ( "OPTIONS" === $_SERVER['REQUEST_METHOD'] ) {
die();
}

另见 this answer .

Angular 发送一个 W3C CORS spec compliant preflight request这将在实际尝试之前检查正确的允许方法。

就我个人而言,我发现 Mozilla Developer Network CORS page在这个问题上更容易阅读,以帮助理解 CORS 的流程。

关于php - 在 codeigniter 中启用 cors(@chriskacerguis 的 restserver),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25702991/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com