Access-Control-Allow-Methods 和 Microsoft Edge,适用于 Firefox 和 Chrome
Access-Control-Allow-Methods and Microsoft Edge, works with Firefox and Chrome
我正在使用 superagent 对我的 WebApi 后端执行 DELETE
调用。
飞行前电话说 Access-Control-Allow-Methods
是 *, GET, POST, PUT, DELETE, OPTIONS
。使用 DELETE
方法在 Firefox 和 Chrome 中工作正常,但在 Edge 中无效(可能与 IE 相同?)。
我在我的控制台中收到此错误:
SEC7124: Request method DELETE was not present in the Access-Control-Allow-Methods list.
它的预检调用 returns 在 Edge 的开发工具中与 Chrome 和 Firefox 相同。服务器是 运行 CORS。
显然 Edge 拒绝将 *
作为 Access-Control-Allow-Methods
的值,尽管它在 CORS 和 HTTP 规范下在语法上是有效的。但是请注意,*
而不是 作为 Access-Control-Allow-Methods
中的通配符具有语义意义。它的字面意思是指具有单字符名称 *
的 HTTP 方法。除非您的服务器实际上需要一个名为 *
的 HTTP 方法,否则没有理由包含此方法名称。
从列表中删除 *
以使您的请求在 Edge 上有效。
IE Edge 也不接受多个 headers,即。
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: PUT
而且你必须return一个
Access-Control-Allow-Methods: POST, PUT
我正在使用 superagent 对我的 WebApi 后端执行 DELETE
调用。
飞行前电话说 Access-Control-Allow-Methods
是 *, GET, POST, PUT, DELETE, OPTIONS
。使用 DELETE
方法在 Firefox 和 Chrome 中工作正常,但在 Edge 中无效(可能与 IE 相同?)。
我在我的控制台中收到此错误:
SEC7124: Request method DELETE was not present in the Access-Control-Allow-Methods list.
它的预检调用 returns 在 Edge 的开发工具中与 Chrome 和 Firefox 相同。服务器是 运行 CORS。
显然 Edge 拒绝将 *
作为 Access-Control-Allow-Methods
的值,尽管它在 CORS 和 HTTP 规范下在语法上是有效的。但是请注意,*
而不是 作为 Access-Control-Allow-Methods
中的通配符具有语义意义。它的字面意思是指具有单字符名称 *
的 HTTP 方法。除非您的服务器实际上需要一个名为 *
的 HTTP 方法,否则没有理由包含此方法名称。
从列表中删除 *
以使您的请求在 Edge 上有效。
IE Edge 也不接受多个 headers,即。
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: PUT
而且你必须return一个
Access-Control-Allow-Methods: POST, PUT