在预检响应中,Access-Control-Allow-Methods不允许使用DELETE方法

Bru*_*ins 2 jquery node.js cors express

我正在尝试删除ajax请求,但我似乎无法使其工作.当我使用POSTMAN制作时,它可以工作.这是我的代码:

这是我的请求,用jQuery的.ajax()方法制作:

$.ajax({
    url: imageUrl,
    type: 'DELETE',
    crossDomain: true
});
Run Code Online (Sandbox Code Playgroud)

在服务器上,使用node.js + express构建的另一个应用程序,我有:

app.use(function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
    next();
});
Run Code Online (Sandbox Code Playgroud)

最后,这些是我的请求,请求标头和响应标头:

请求

Request URL:http://original/request/url
Request Method:OPTIONS
Status Code:200 OK
Remote Address:75.126.137.93:80 
Run Code Online (Sandbox Code Playgroud)

请求标题

Accept:*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:pt-BR,pt;q=0.8,en-US;q=0.6,en;q=0.4,es;q=0.2,gl;q=0.2
Access-Control-Request-Headers:
Access-Control-Request-Method:DELETE
Connection:keep-alive
Host:fs.bvodola.webfactional.com
Origin:http://localhost:3000
Referer:http://localhost:3000/landing/admin/add-page
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36
Run Code Online (Sandbox Code Playgroud)

响应标题

Access-Control-Allow-Headers:Origin, X-Requested-With, Content-Type, Accept
Access-Control-Allow-Origin:*
Allow:GET,HEAD,DELETE
Connection:keep-alive
Content-Length:15
Content-Type:text/html; charset=utf-8
Date:Sat, 03 Sep 2016 23:34:17 GMT
ETag:W/"f-W+bYAIA7Bs2GwQecFLp1SA"
Server:nginx
X-Powered-By:Express
Run Code Online (Sandbox Code Playgroud)

控制台中我得到以下内容:

XMLHttpRequest无法加载http:// original/request/url.在预检响应中,Access-Control-Allow-Methods不允许使用DELETE方法.

我怎么解决这个问题? 在一些StackOverflow问题上,我读到Access-Control-Allow-Headers必须与Access-Control-Request-Headers相同.但是当我尝试在jQuery请求上设置它时,我在控制台上得到以下内容:

拒绝设置不安全的标题"Access-Control-Request-Headers"

什么可能是错的?谢谢!


我查看了以下StackOverflow问题,但找不到答案:

Dev*_*per 9

Access-Control-Allow-Methods在响应标头中添加您希望以逗号分隔的方法:'GET, POST,DELETE...'