当前位置: 首页 > 面试题库 >

Slim Framework-jQuery $ .ajax请求-Access-Control-Allow-Methods不允许方法DELETE

司马萧迟
2023-03-14
问题内容

我正在尝试使用以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;
     }

    }

-



 类似资料:
  • 问题内容: 我正在尝试使用发布请求将文件发送到服务器,但是在发送请求时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了错误并添加了标题: 然后我得到错误: Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin 所以我用谷歌搜索,唯一能找到的类似

  • 我正在尝试将文件发送到我的服务器,并发送post请求,但当它发送时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了这个错误并添加了标题: 然后我得到错误:

  • 问题内容: 我是Ajax的新手,只是受过此跨域调用的任务。我们的网页上有一个文本框,用户可用来执行公司名称搜索。通过单击文本框旁边的按钮,将请求Ajax调用。不幸的是,Web服务位于单独的域中,因此自然会引起问题。 以下是我使这项工作的最佳尝试。我还要注意,此调用的目的是以XML格式返回结果,该结果将在请求的一部分中进行解析。 这又是错误消息: 对于解决方法,我不知所措,将不胜感激任何想法。 问题

  • null 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。Access-Control-Allow-Origin不允许Origin 。 如何解决此问题?

  • 问题内容: 我从我控制的远程服务器获取json时遇到问题。我有2个Web应用程序,一个提供数据并在端口3311上运行,另一个请求数据的应用程序在端口5000上运行。 使用jquery的以下工作: 当尝试使用angular相同的获取请求时 我收到错误 控制台日志显示OPTIONS请求返回HTTP200之后发生的错误 从OPTIONS请求返回的标头是 问题答案: 这可能是由于Angular包含请求标头

  • 问题内容: 我正在使用Sencha Touch 2应用程序(包装在PhoneGap中)到远程PHP服务器。 服务器的响应如下: XMLHttpRequest无法加载http://nqatalog.negroesquisso.pt/login.php。原产地不被访问控制允许来源允许的。 我该如何解决这个问题? 问题答案: 不久前,我写了一篇有关此问题的文章Cross Domain AJAX 。 如果