【问题标题】:Where to write Access-Control-Allow-Origin: or Origin在哪里写 Access-Control-Allow-Origin: 或 Origin
【发布时间】:2014-03-10 08:30:43
【问题描述】:

可能这是一个愚蠢的问题,但我找不到任何解决方案。 我正在处理跨域问题。所以我通过搜索知道我需要设置我的Access-Control-Allow-Origin:Origin 标签。但是哪里??建议在标题中使用这些。

我找不到任何可以解释这一点的东西。谁能告诉我在哪里放置这个标签以及如何放置!!

head 标签中?或DOCTYPE ?请帮忙......我需要使用JavaScript还是什么?

【问题讨论】:

    标签: javascript html cross-browser cross-domain same-origin-policy


    【解决方案1】:

    一种方法是将您的代码放在服务器端:

    response.addHeader("Access-Control-Allow-Origin", "*");// To allow all domains
    

    仅限制对特定域的访问:

    response.addHeader("Access-Control-Allow-Origin", "http://www.example.com");
    

    我在java servlet中使用过上面的代码,如果你使用不同的语言,你可以使用类似的方法。

    【讨论】:

      【解决方案2】:

      这应该作为 HTTP 标头传递,与 HTTP 协议一起使用。您的客户端向服务器发出请求,如下所示:

      GET /cors HTTP/1.1 来源:http://api.bob.com 主办方:api.alice.com 接受语言:en-US 连接:保持活动 用户代理:Mozilla/5.0...

      在您的回复中,您的服务器端代码必须手动为 Access-Control-Allow-Origin 添加 http 标头。很多时候,人们会简单地做这样的事情:

      response.addHeader("Access-Control-Allow-Origin", "*");

      但是,如果您需要进行任何类型的身份验证,请记住,如果您要发送凭据(通过在请求中使用 Access-Control-Allow-Credentials 标头,或在 jQuery ajax 调用中设置 withCredentials) ,那么您必须在响应标头中指定允许的来源:

      response.addHeader("Access-Control-Allow-Origin", "http://api.bob.com");

      此外,请务必处理飞行前的 OPTIONS 请求。

      如果这没有帮助,这个网站几乎涵盖了所有场景:http://www.html5rocks.com/en/tutorials/cors/

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-02-21
        • 1970-01-01
        • 2017-12-29
        • 2017-05-29
        • 2013-09-09
        • 2017-06-15
        • 2019-02-07
        相关资源
        最近更新 更多