【问题标题】:How to make cross-domain requests using AJAX and why they work如何使用 AJAX 进行跨域请求及其工作原理
【发布时间】:2016-12-21 18:40:54
【问题描述】:

在我的 LAN 上有一个 Web 服务器,位于机器 A 上的 10.xxx

我在机器 B 上有一个 HTML 页面。这个 HTML 页面想要向10.xxx 的 Web 服务器发出 AJAX 请求。我制作了页面(网址为file://abc.html)并尝试了它并得到了

跨域请求被阻止:同源策略不允许读取位于 http://XXXXXXXXXXX/ajax_info.txt 的远程资源。 (原因:缺少 CORS 标头“Access-Control-Allow-Origin”)

我的问题:

  1. 有什么方法可以在 Mozilla 中启用此功能?

  2. 如果禁止跨域请求,我们如何通过 AJAX 向 Facebook、Twitter 和 jQuery 库服务器发出请求?

  3. 我可以将'Access-Control-Allow-Origin' 添加到普通 AJAX 请求吗?

这可能是一个常见的问题。我在 Google 上看到了很多类似的问题,SO 也是如此。

【问题讨论】:

    标签: javascript php jquery ajax cors


    【解决方案1】:

    你放

    header('Access-Control-Allow-Origin: *');  
    

    在机器 A 上

    如果您想更安全,可以添加您的域来代替 * -

    例如http://www.foo.com

    header('Access-Control-Allow-Origin: http://www.foo.com');  
    

    【讨论】:

    • 机器 A 到底在哪里?基本上我们需要确保域 A 总是在它的响应中返回这个?
    • 这是一个标题,你把它放在页面的顶部。高于一切。
    • 根据我的下一个问题,facebook 是否设置了这个,所以世界上的任何域都可以查询它的域?
    • 这是另一个单独的问题。请将以上标记为正确,如果您想了解更多信息,请提出另一个问题或与我聊天。你在做什么和fb在做什么之间有很大的不同。基本上,如果你想打开你的机器,你应该进行身份验证,以 REST API 为核心,等等。这又是另一个问题,所以......
    • 我同意你的说法,我知道我在做什么或fb在做什么完全不同,你能邀请我聊天吗,我想我不能这样做
    猜你喜欢
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 2012-08-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-05
    • 2012-12-22
    相关资源
    最近更新 更多