我使用ExpressJS为NodeJS编写了一个RESTful API。我正在使用BackboneJS调用这个API。
以下是我的API通过OPTIONS返回的样本标头:
Access-Control-Allow-Headers:Content-Type
Access-Control-Allow-Origin:http://localhost
Allow:GET,PUT,DELETE
Connection:keep-alive
Content-Length:14
Content-Type:text/html; charset=utf-8
Date:Sun, 19 Aug 2012 13:52:35 GMT
X-Powered-By:Express
我已经修改了头部,包括前两个出现的Access-Control-Allow字段。其余部分由express自动生成,包括Allow字段。 我可以正常使用GET。 但是,当我尝试使用BackboneJS进行PUT或DELETE时,我遇到了以下问题:
Method PUT is not allowed by Access-Control-Allow-Methods.
Method DELETE is not allowed by Access-Control-Allow-Methods.
当然,我可以修改我的响应头以包含这两种方法来避开这个问题。
但是我想了解在 ExpressJS 自动添加到路由中的基本“Allow”与这些方法之间的区别是什么?有什么不同之处吗?
Allow
头部也无关紧要了? - MichalHeader set Access-Control-Allow-Methods "expr=%{resp:Allow}"
,以防有人想要覆盖它... - Garvit Jain