我试图在我的 node 中支持CORS.使用Express的js应用程序.js web框架.我已经读了a Google group discussion篇关于如何处理这个问题的文章,还读了几篇关于CORS如何工作的文章.首先,我这样做了(代码是用CoffeeScript语法编写的):
app.options "*", (req, res) ->
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
# try: 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Methods', 'GET, OPTIONS'
# try: 'X-Requested-With, X-HTTP-Method-Override, Content-Type, Accept'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
它似乎不起作用.我的浏览器(Chrome)似乎没有发送初始选项请求.当我刚刚更新资源的块时,我需要向以下机构提交一个跨源GET请求:
app.get "/somethingelse", (req, res) ->
# ...
res.header 'Access-Control-Allow-Origin', '*'
res.header 'Access-Control-Allow-Credentials', true
res.header 'Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, OPTIONS'
res.header 'Access-Control-Allow-Headers', 'Content-Type'
# ...
它可以(在Chrome中)工作.这也适用于Safari.
我读过...
在实现CORS的浏览器中,每个跨源GET或POST请求前面都有一个选项请求,用于判断GET或POST是否正常.
所以我的主要问题是,为什么我的情况似乎没有发生这种情况?为什么不是我的应用程序.打电话了吗?为什么我需要在我的主应用中设置标题.有人拦住吗?