我尝试使用流星中restivus生成的端点PUT
来更新记录(mongo DB)。它正在使用本地主机'地址。而不是' localhost'使用ip地址返回了以下错误。
XMLHttpRequest cannot load http://192.168.2.44:3000/api/v1/posts/HBw6uWkzScivNj9Er. Method PUT is not allowed by Access-Control-Allow-Methods in preflight response.
我阅读了他们的文件,但无法找到解决方案。如果有人遇到类似情况并解决了问题,请分享您的解决方案。
提前致谢。
答案 0 :(得分:2)
您会注意到,当您的浏览器地址栏显示localhost
网址时,localhost
请求有效。但是,如果您的浏览器地址栏显示192.168.2.44
(假设它是您的计算机),则localhost网址将停止工作,并且IP地址网址将起作用。浏览器不允许对其他域名发出XMLHttpRequest
或ajax
请求。在这种情况下,您的IP地址和localhost
是不同的域,即使它们指向同一台计算机。由于Cross Origin请求策略,浏览器仍然不允许它。
无论何时提出ajax请求,最好不要提及域名。这将默认浏览器在加载的同一域上发出请求。只需将您的网址替换为/api/v1/posts/HBw6uWkzScivNj9Er
,您就会确保它始终有效。
我建议您阅读以下MDN文章,以全面了解Cross Origin政策。
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS