当前位置: 首页 > 面试题库 >

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

尚河
2023-03-14
问题内容

当我的客户端应用和api位于本地主机时,agularJs控制器中的http.get请求可以正常工作。将api移至服务器时,出现问题。

客户端使用angularJs

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

日志给出:跨域请求被阻止:同源策略禁止读取位于http://domain.com/api/spots/2/0的远程资源。可以通过将资源移至同一域或启用CORS来解决此问题。

我已经将这两行添加到我的控制器构造中

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

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

还是一样的错误。


问题答案:

尝试html" target="_blank">添加OPTIONS到允许的方法。

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

设置标头后,当请求为方法“ OPTIONS”时立即返回。

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

Angular发送符合W3C CORS规范的预检请求,该请求将在实际尝试之前检查正确的允许方法。

就我个人而言,我发现Mozilla开发人员网络CORS页面在此问题上更易于阅读,以帮助理解CORS的流程。



 类似资料:
  • http。当我的客户端应用程序和api位于localhost中时,agularJs控制器中的get请求工作正常。当api移动到服务器时。,问题出现了。 使用angularJs的客户端 日志给出:跨源请求被阻止:同源策略不允许读取远程资源http://domain.com/api/spots/2/0.这可以通过将资源移动到同一域或启用CORS来解决。 我已经将这两行添加到我的控制器构造中 还是一样的

  • 问题内容: 我一直在尝试找出如何在CI中启用$ _GET。 看起来框架故意破坏了$ _GET数组,并且启用它需要认真修改核心类。谁能说这是为什么,以及如何克服它? 提醒您,我希望保持URI的解析和路由,只需要$ _GET即可。 问题答案: 将以下库添加到您的应用程序库。它覆盖清除$ _GET数组的默认输入库的行为。它允许URI段和查询字符串混合使用。 应用程序/库/MY_Input.php 修改某

  • 如何在Spring5WebFlux项目中启用CORS? 我找不到合适的留档。

  • 问题内容: 我已经使用SLIM PHP框架创建了一个基本的RESTful服务,现在我正尝试将其连接起来,以便可以从Angular.js项目访问该服务。我已经了解到Angular开箱即用地支持CORS,而我要做的就是在我的.htaccess文件中添加以下行: 我已经做到了,我的REST应用程序仍然可以正常工作(.htaccess错误导致500个内部服务器没有错误),但是当我尝试从test- cors

  • 问题内容: 我使用Flickr照片搜索API的JavaScript创建了一个演示。现在,我将其转换为AngularJs。我在互联网上搜索,发现下面的配置。 组态: 服务: 控制器: 问题答案: 你不知道 您请求的服务器必须实现CORS才能从您的网站访问权限中授予JavaScript。您的JavaScript无法授予自己访问其他网站的权限。

  • 问题内容: 我正在尝试使用jquery提出跨源请求,但它一直被消息拒绝 XMLHttpRequest无法加载http:// …请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不能访问Origin…。 我正在使用flask,heroku和jquery 客户端代码如下所示: 在heroku方面,我正在使用flask,就像这样 问题答案: 当我部署到Heroku