Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用AngularJS的POST请求失败,飞行前选项状态代码为404,使用CodeIgniter ResetServer_Angularjs_Codeigniter_Http Post_Cors_Codeigniter Restserver - Fatal编程技术网

使用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';

这是一个很好的回答,谢谢这是一个很好的回答,谢谢