【问题标题】:Set Up CORS IIS7设置 CORS IIS7
【发布时间】:2017-12-17 21:25:13
【问题描述】:

我有一个 webforms 站点,我正在尝试通过 JQuery 向同一站点上的页面发出 Web 请求。但是,我尝试访问的页面是在 HTTPS 上,而不是在执行 Jquery 的页面使用的 HTTP 上。我收到有关“Access-Control-Allow-Origin”的错误,因此我对其进行了调查,现在我将以下内容添加到了我的 web.config 中。

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

这是我的 JQuery

<script type="text/javascript">
    $( document ).ready(function() {
        $.ajax({
            type: "GET",
            headers: {
                "Access-Control-Allow-Origin": "*"
            },
            url: "https://www.example.com",
            success: function (resp) {
                //register browser as supported
                console.log("supported");
            },
            error:function(e){
                //register browser as unsupported
                console.log(e);
                console.log("unsupported");
            }
        })
    })
</script>

但是我现在收到以下错误

XMLHttpRequest 无法加载 https://www.example.com/。回应 预检请求未通过访问控制检查:否 请求中存在“Access-Control-Allow-Origin”标头 资源。因此不允许使用原点“http://www.example.com” 访问。

我需要做什么才能让它工作?

【问题讨论】:

  • 也尝试添加Access-Control-Allow-Methods。此外,您可以从 jQuery AJAX 调用中删除 headers 属性;请求中的标头是多余的。
  • 我现在添加了 但它并没有修复错误。但是,从 ajax 请求中删除标头会返回原始错误“XMLHttpRequest 无法加载 example.com。请求的资源上不存在 'Access-Control-Allow-Origin' 标头。因此不存在 Origin 'example.com'允许访问。”
  • 您的配置看起来不错,但似乎并未应用于响应。您可以检查控制台“网络”选项卡中的标题以确认这一点。我只能建议您仔细检查您是否没有覆盖网站本身的 web.config 中的标题。
  • @coolblue2000 你能发布你的 webconfig 吗?

标签: jquery asp.net iis-7 cors


【解决方案1】:

我已经意识到发生了什么。我们有一个奇怪的设置,其中有一个作为根站点的 CMS 系统,但系统的其余部分是它自己的 webforms 应用程序。首先调用 CMS 系统 web.config,因此需要进行更改,但我已在主站点 web.config 中进行了更改。

愚蠢的设置....

感谢您的帮助。

【讨论】:

    猜你喜欢
    • 2012-01-27
    • 2013-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多