【问题标题】:Meteor Restivus : Method PUT is not allowed by Access-Control-Allow-Methods in preflight responseMeteor Restivus:预检响应中的 Access-Control-Allow-Methods 不允许方法 PUT
【发布时间】:2016-03-11 23:14:42
【问题描述】:

我尝试使用由流星中的restivus 生成的端点PUT 更新记录(mongo DB)。它正在使用“localhost”地址。当使用 ip 地址而不是 'localhost' 时,它返回以下错误。

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.

我阅读了他们的文档,但找不到解决方案。如果有人遇到类似情况并解决了问题,请分享您的解决方案。

提前致谢。

【问题讨论】:

    标签: javascript mongodb rest meteor


    【解决方案1】:

    您会注意到,当您的浏览器地址栏显示localhost url 时,localhost 请求有效。但是如果你的浏览器地址栏显示192.168.2.44(假设是你的机器),localhost url 将停止工作,ip 地址 url 将工作。浏览器不允许向其他域名发出XMLHttpRequestajax 请求。在这种情况下,您的 IP 地址和 localhost 是不同的域,即使它们指向同一台计算机。由于跨域请求策略,浏览器仍然不允许它。

    每当您发出 ajax 请求时,最好不要提及域。这将默认浏览器在加载的同一域上发出请求。只需将您的网址替换为 /api/v1/posts/HBw6uWkzScivNj9Er,您将确保它始终有效。

    我建议阅读以下 MDN 文章以全面了解跨域策略。

    https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

    【讨论】:

    • @DeepakJose 欢迎您。考虑为答案投票。
    猜你喜欢
    • 2016-05-25
    • 2019-04-28
    • 2018-10-31
    • 1970-01-01
    • 2017-01-11
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    相关资源
    最近更新 更多