我正在尝试发出DELETE ajax请求,但我似乎无法使其工作。当我使用POSTMAN制作时,它可以工作。这是我的代码:
这是我的请求,使用jQuery的.ajax()方法:
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();
});
在服务器上,使用node.js + express构建的另一个应用程序,我有:
Request URL:http://original/request/url
Request Method:OPTIONS
Status Code:200 OK
Remote Address:75.126.137.93:80
最后,这些是我的请求,请求标头和响应标头:
请求
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
请求标题
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
响应标题
aa=['mma', 'sdas', 'asdsad']*1000
t=pd.DataFrame(aa)
a=['m', 'f', 'n']*1000
t1=pd.DataFrame(a)
t2=pd.concat([t,t1], axis=1)
t2.columns=['texto', 'textito']
在控制台中,我得到以下内容:
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问题,但找不到答案:
答案 0 :(得分:9)
在响应标头中添加Access-Control-Allow-Methods
以及您希望以逗号分隔的方式:'GET, POST,DELETE...'