1.jquery中ajax的请求方法type可以设定为get,post,put,delete等
2.请求方式分为:
2.1 简单请求如:get,post,options,一次请求即可成功
2.2 复杂请求(预先请求):put,delete等,首先会使用options去向服务器发送请求,请求通过以后,才会发送真正的请求。例如:put 请求,会被拆解成2部分,1.options请求成功后 2.才会进行put请求
详情:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
3.解决方案
思路如下。在生成rest路由之前判断请求方式是否是options方法:
代码:简单粗暴
路径:thinkphp\library\think\Route.php public static function rule(){
}
if($_SERVER['REQUEST_METHOD'] == 'OPTIONS'){ header("Access-Control-Allow-Origin: *"); header("Access-Control-Allow-Methods: POST,GET,DELETE,PUT,OPTIONS"); die; }