Riz*_*Riz 6 ajax rest slim http-delete
我正在尝试使用Slim Framework编写的REST API.
Get&Post方法没有任何问题.但是DELETE请求不起作用.我得到" Access-Control-Allow-Methods " 不允许 " 方法删除 "
我已经允许OPTIONS以及标题中的DELETE.见下面的代码.
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');
$app->options('/(:name+)', function() use($app) {
$response = $app->response();
$app->response()->status(200);
$response->header('Access-Control-Allow-Origin', '*');
$response->header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, X-authentication, X-client');
$response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS');
});
Run Code Online (Sandbox Code Playgroud)
这个请求失败的原因是什么?
当前版本的Nginx(1.0.x)似乎不支持HTTP OPTIONS请求.每当发送此请求时,它将返回405"Method Not Allowed".我在nginx服务器的配置文件中添加了标题来解决我的问题.
location / {
alias /usr/share/nginx/webapp/;
try_files $uri $uri/ /index.php;
if ($request_method = 'OPTIONS') {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
add_header 'Access-Control-Allow-Methods' "GET, POST, OPTIONS, DELETE";
add_header 'Access-Control-Max-Age' 1728000;
return 200;
}
}
Run Code Online (Sandbox Code Playgroud)
-