使用AngularJS的POST请求失败,飞行前选项状态代码为404,使用CodeIgniter ResetServer
我的前端应用程序运行在端口使用AngularJS的POST请求失败,飞行前选项状态代码为404,使用CodeIgniter ResetServer,angularjs,codeigniter,http-post,cors,codeigniter-restserver,Angularjs,Codeigniter,Http Post,Cors,Codeigniter Restserver,我的前端应用程序运行在端口9100上的grunt实时服务器上,而我的PHP服务器运行在端口80上。主机相同,只是端口不同 当我向POST发送请求时http://dev.site.dev/api/gist使用一些JSON数据,我在飞行前选项请求中遇到了一个错误404 我已经在apache配置中添加了CORS标题: 标题集访问控制允许原点“* 标题集访问控制允许标题“X请求,接受,内容类型” 标题集访问控制允许方法“PUT、GET、POST、DELETE、OPTIONS” ``` 并重新启动服务器
9100
上的grunt
实时服务器上,而我的PHP服务器运行在端口80
上。主机相同,只是端口不同
当我向POST发送请求时http://dev.site.dev/api/gist
使用一些JSON
数据,我在飞行前选项
请求中遇到了一个错误404
我已经在apache配置中添加了CORS
标题:
标题集访问控制允许原点“*
标题集访问控制允许标题“X请求,接受,内容类型”
标题集访问控制允许方法“PUT、GET、POST、DELETE、OPTIONS”
```
并重新启动服务器,但仍然存在问题
我应该在我的gist
控制器中添加index\u option()
方法吗?或者问题出在其他地方?是的,您必须添加index\u options()
方法
我遇到了同样的问题,只有当我添加了与POST方法参数相同的OPTIONS方法时,它才起作用。是的,您必须添加index\u OPTIONS()
方法
我也遇到了同样的问题,只有当我添加了与POST方法参数相同的OPTIONS方法时,它才起作用。正如我在中所描述的,有几种解决方案
应用范围
我从中找到了一个解决方案,即从$allowed\u http\u methods
中的值列表中删除otpion
:
//protected$allowed\u http\u methods=array('get','delete','post','put','options','patch','head');
受保护的$allowed_http_methods=array('get','delete','post','put','patch','head');
资源集中
另一个解决方案是简单地实现索引选项()
由于打字错误,我第一次没能使用它(它是选项
是复数形式)。使用此解决方案,无需再处理applications/libraries/REST\u Controller.php
:
public function index_options(){
返回$this->response(NULL,200);
}
现在飞行前选项
请求始终为真,因此发送飞行后
请求,一切正常:)正如我在中所述,有几种解决方案
应用范围
我从中找到了一个解决方案,即从$allowed\u http\u methods
中的值列表中删除otpion
:
//protected$allowed\u http\u methods=array('get','delete','post','put','options','patch','head');
受保护的$allowed_http_methods=array('get','delete','post','put','patch','head');
资源集中
另一个解决方案是简单地实现索引选项()
由于打字错误,我第一次没能使用它(它是选项
是复数形式)。使用此解决方案,无需再处理applications/libraries/REST\u Controller.php
:
public function index_options(){
返回$this->response(NULL,200);
}
现在飞行前的选项
请求始终为真,因此发送飞行后的请求,一切正常:)在我的情况下,这是一个路由问题
我所做的是越过404路由。在那之后,请求通过了路由,rest服务器完成了所有剩余的工作
这是我在routes.php中的内容:
$route['404_override'] = 'auth/options';
在我的情况下,这是一个路由问题
我所做的是越过404路由。在那之后,请求通过了路由,rest服务器完成了所有剩余的工作
这是我在routes.php中的内容:
$route['404_override'] = 'auth/options';
这是一个很好的回答,谢谢这是一个很好的回答,谢谢