Slim Framework - jQuery $.ajax request - Method DELETE is not allowed by Access-Control-Allow-Methods

一曲冷凌霜 提交于 2019-11-27 18:41:48

问题


I am trying to use a REST API written in Slim Framework.

Get & Post methods work without any problem. But DELETE requests doesn't work. I get "Method DELETE is not allowed by Access-Control-Allow-Methods"

I have already allowed OPTIONS aswell as DELETE in headers. See code below.

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');
 });

What could be the reason for this request failure?


回答1:


The current version of Nginx (1.0.x) doesn’t seem to support HTTP OPTIONS requests. It returns 405 "Method Not Allowed" whenever this request is sent. I added headers in nginx server's config file which fixed my problem.

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;
     }

    }

--



来源:https://stackoverflow.com/questions/20144847/slim-framework-jquery-ajax-request-method-delete-is-not-allowed-by-access

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!