我知道,这是一个非常常见的话题,我已经检查了很多关于堆栈溢出的问题。但我的案子有点不同,因为我不明白问题所在。基本上,我知道如何处理CORS,我已经尝试了许多解决方案。
让我解释一下情况:
我的设置是一个Ionic项目(在本地主机上),它通过http请求发送一个PUT到我自己托管的Directus Headless-CMS。完美地完成工作。当我通过邮递员尝试这个请求时,效果很好。我知道邮递员在它的请求中会自动发送额外的标题。我也试图将它们添加到我的代码中,但仍然是相同的回复消息。
这是Ionic内部的响应代码片段。
var jsonbody = {};
jsonbody['german'] = "lorem ipsum";
jsonbody['turoyo'] = "lorem ipsum";
jsonbody['description'] = "lorem ipsum";
console.log(jsonbody);
this.http.put('http://example.com/api/1.1/tables/translation/rows/1?access_token=myaccesstoken', jsonbody, {headers: headers})
.subscribe(
(response) => {
//foo
},
(error) => {
//bar
},
() => {
//foobar
}
);在我的浏览器控制台中,我在尝试请求后得到以下消息:
XMLHttpRequest无法加载token=myaccesstoken。飞行前响应中的访问控制-允许-方法不允许使用PUT方法.
在邮递员里,它像微风一样工作。看

您还可以在Postman中为该请求生成相应的代码片段。在这种情况下是:

有人知道我做错了什么吗?也许我只是错过了一个细节。我还试图添加标题到我的nginx站点启用配置。但这并没有什么区别。但这对我来说毫无意义,因为邮递员确实发出了请求。
谢谢!
发布于 2017-11-23 07:23:09
您是否将CORS设置添加到/[directus]/api/.htaccess文件中?
Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"发布于 2017-09-13 07:57:38
最后,我尝试了这个解决方案,它起作用了:
https://michielkalkman.com/snippets/nginx-cors-open-configuration/
我只是把CORS的陈述放进我的位置规则。
不管怎么说,我觉得很奇怪,这和我提到的工具起作用了。
https://stackoverflow.com/questions/46181050
复制相似问题