【问题标题】:changing the Access-Control-Allow-Origin to allow Jquery load() to work更改 Access-Control-Allow-Origin 以允许 Jquery load() 工作
【发布时间】:2013-08-11 12:48:48
【问题描述】:

情况:

  • 运行 Web 服务器的内部网站。
  • SharePoint 在不同的内部 Web 服务器上运行。
  • 都是内部的,都在同一个company.com内部域(不同的子域,因为它们是通过SharePoint.company.cominternalWeb.company.com访问的)

问题:

  • XMLHttpRequest 无法加载 http://SharePoint.company.com. 来源 http://internalWeb.company.com 不允许 Access-Control-Allow-Origin。

我想要什么:

  • 使用 ajax 和我的网站运行的 JQuery load() 函数 Web 服务器调用 SharePoint 服务器上的 url。

注意:

  • 这似乎应该可以将 SharePoint 服务器设置为 通过设置允许跨源请求 Access-Control-Allow-Origin,它是 ALL INTERNAL,我可以随意更改 web.configs 或 IIS 设置
  • 这可能吗?如果是这样,我在哪里设置它。我已经阅读了很多 并且似乎无法得到明确的答案。

代码:(在我在internalWeb.company.com 上运行的网页上)

$("#details").load("SharePoint.company.com/someDetails.html");

谢谢!

【问题讨论】:

    标签: jquery ajax cors


    【解决方案1】:

    快速解决方法是在您的 SharePoint web.config 中设置自定义标题:

    http://www.iis.net/configreference/system.webserver/httpprotocol/customheaders

    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="*" />
    </customHeaders>
    

    或者只针对那个域,试试

    <customHeaders>
        <add name="Access-Control-Allow-Origin" value="http://internalWeb.company.com" />
    </customHeaders>
    

    【讨论】:

    • 这必须放在location 标签下吗? r 就在常规 system.webserver 部分下方?
    • 可以,我认为不需要。这是一个带有位置标签的示例:stackoverflow.com/questions/13061524/…
    • 打开您的网络选项卡,查看 xhr 请求,看看是否确实返回了标头。
    • 我在Header中看不到,但那不是网页发送到第二台服务器的Header吗?
    • Access-Control-Allow-Origin 标头应该是 response 标头。
    猜你喜欢
    • 2013-08-24
    • 2015-06-17
    • 2013-09-09
    • 2012-03-08
    • 2011-10-25
    • 2012-06-07
    • 2011-11-05
    相关资源
    最近更新 更多