【问题标题】:Cross-Origin Request Blocked: in javascript using XMLHttpRequest跨域请求被阻止:在 javascript 中使用 XMLHttpRequest
【发布时间】:2016-06-13 08:52:52
【问题描述】:

我正在尝试使用 XMLHttpRequest 在 javascript 中发送 HTTP 请求,因此我在 HTML 文件中使用以下代码。我正在运行服务器,它返回格式为 {'test' : 'string'} 的字典。

      <script type="text/javascript">
        var xhr = new XMLHttpRequest();
        xhr.open("GET", "http://localhost:5000/test", true);
        xhr.setRequestHeader("Access-Control-Allow-Origin", "*");
        xhr.send();

        xhr.onreadystatechange = processRequest;
        console.log(xhr.status)

        function processRequest(e)
        {
            if (xhr.readyState == 4)
            {
                alert(xhr.responseText);
            }
        }
      </script>

尽管添加了标头,但我在控制台中收到了 Cross-Origin Request Blocked: 错误,当我尝试在控制台中打印 xhr.status 时,它显示 0 作为响应。 我正在使用烧瓶服务器,它在使用 https 时显示错误消息错误,所以我正在使用 http 请求。

【问题讨论】:

  • 运行此脚本的页面是否也在http://localhost:5000/上托管?
  • 不,它是一个单独的 HTML 文件,我想通过它发送 HTTP 请求。
  • 这就是问题所在,了解一下它被阻止的原因,也许是here。您不能在客户端设置 Access-Control-Allow-Origin 标头。这需要在服务器上设置,即服务器应该允许您连接到其他域。

标签: javascript http https flask


【解决方案1】:

您无法从前端控制 CORS。你必须把 CORS 模块放到你的后端服务器上。

查看链接flask cors

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-06-26
    • 2014-10-13
    • 1970-01-01
    • 2019-11-04
    • 2017-02-06
    • 2016-01-29
    相关资源
    最近更新 更多