我正在尝试使用以Slim Framework编写的REST API。
Get&Post方法可以正常工作。但是DELETE请求不起作用。我收到“ Access-Control-Allow-Methods不允许方法DELETE ”
我已经在标题中允许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'); });
该请求失败的原因可能是什么?
当前版本的Nginx(1.0.x)似乎不支持HTTP OPTIONS请求。发送此请求时,它将返回405“方法不允许”。我在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; } }
-