【问题标题】:CORS No 'Access-Control-Allow-Origin'CORS 没有“访问控制允许来源”
【发布时间】:2018-06-27 13:36:10
【问题描述】:

我正在使用 asp mvc 4 并尝试下载基于动态创建的文件。

为此,我使用下面的 Kendo UI 在调用时下载 pdf:

    var generatePDF = function () {
        kendo.drawing.drawDOM($("#property"), { paperSize: "A4", forcePageBreak: ".page-break" })
                     .then(function (group) { kendo.drawing.pdf.saveAs(group, "Converted PDF.pdf"); });
    }

没有下载图像。控制台提供消息

XMLHttpRequest 无法加载 https://myStorage.blob.core.windows.net/mySetPath/Large/lounge.JPG。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://localhost:49878' 因此不允许访问。

我使用placekitten进行了测试,下载的图片没有出现上述错误。

这让我相信这只是存储容器的权限问题,所以我阅读了this 并应用了以下内容:

允许的来源:127.0.0.1 允许的动词:GET 允许的标题:x-ms-*(我也试过 ) 暴露的标题:x-ms-(我也试过 *) 最大年龄(秒):10

但我仍然遇到同样的错误。我也尝试在 Azure 上部署我的网站,但错误未解决。

我做错了什么?

【问题讨论】:

  • 这是一个 CORS 问题 - 查找 CORS - 该问题只能在 服务器上修复
  • 尝试使用* 获取允许的来源值。您已将 127.0.0.1 设置为允许的来源,并且您的应用程序是通过 localhost 访问的,所以那里不匹配。

标签: javascript asp.net azure kendo-ui cors


【解决方案1】:

您可以在 Azure 门户中为 Blob 服务启用 CORS。

  1. 转到Azure portal。
  2. 导航到您的存储帐户。
  3. 点击BLOB SERVICE菜单中的CORS。

  1. 在空白的Allowed Origins文本框中输入每个网址。
  2. 点击保存

【讨论】:

  • 我已按照您的建议进行了更改,但我仍然收到消息:从原点 'myImageBlobContainer' 访问图像在 'myImage' 已被 CORS 策略阻止:否 'Access-Control-请求的资源上存在 Allow-Origin' 标头。因此,Origin 'localhost:49878' 不允许访问。我错过了什么?
  • 您是否尝试在Allowed origins 中输入星号* 以指定接受所有源域?
【解决方案2】:

请试试这个扩展:

将 CORS chrome extension 添加到您的 chrome 浏览器中:

Add CORS extension into your browser

添加后我的问题已经解决了。

【讨论】:

    猜你喜欢
    • 2016-06-27
    • 2020-11-26
    • 2018-08-10
    • 2018-03-19
    • 2019-02-09
    • 2016-06-02
    • 2020-10-25
    • 2019-09-16
    • 2020-11-02
    相关资源
    最近更新 更多