【发布时间】:2017-01-02 21:37:36
【问题描述】:
我正在开发一个 Angular 应用程序,并且必须向 Web 服务发送一些 CORS 请求。 GET 和 POST 按预期工作,但我总是得到“预检响应中的 Access-Control-Allow-Methods 不允许方法 PATCH”。错误。 请求和响应标头如下。知道这里有什么问题吗?
当我在 Postman 中发送相同的请求时,一切正常 - 我认为它不进行预检测试?
请求
Accept:*/*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:en-US,en;q=0.8,de;q=0.6,es;q=0.4,fr;q=0.2,pt;q=0.2,nb;q=0.2
Access-Control-Request-Headers:authorization, content-type
Access-Control-Request-Method:PATCH
Cache-Control:no-cache
Connection:keep-alive
DNT:1
Host:192.168.100.101:8081
Origin:http://zav.frontend.build
Pragma:no-cache
Referer:http://zav.frontend.build/provider/settings/account_data
回复:
Access-Control-Allow-Headers:Content-Type, Authorization, X-Requested- With
Access-Control-Allow-Methods:*
Access-Control-Allow-Origin:*
Allow:HEAD,GET,OPTIONS,PATCH
Content-Length:1697
Content-Type:application/vnd.sun.wadl+xml
Date:Fri, 26 Aug 2016 08:53:03 GMT
Last-modified:Fr, 26 Aug 2016 10:53:03 MESZ
【问题讨论】:
-
Firefox 怎么样?也许您可以使用
PATCH方法指定Access-Control-Allow-Methods。 -
好提示:Firefox 给了我同样的错误,但提示,在 Acces-Control-Allow-Method 中找不到 PATCH,所以 PATCH 可能不适用于通配符。我将通过明确允许 PATCH 来测试它
标签: google-chrome cors patch