【问题标题】:HTTP Requesting data from a local serverHTTP 从本地服务器请求数据
【发布时间】:2016-05-31 15:26:18
【问题描述】:

我正在本地机器上运行两个 Flask 应用程序。

1) 我的测试客户端网站(在端口 5001 上)

2) 我的 API(在端口 5000 上)

如果我在浏览器中输入127.0.0.1:5000/search/,我会得到以下信息:

Test Hello World

如果我在浏览器中输入127.0.0.1:5001,我会得到一个包含以下 HTML 代码的普通网页(这一切看起来都不错):

<!DOCTYPE html>
<html>
<body>

<button type="button" onclick="loadDoc()">Request data</button>

<p id="demo">TEST</p>

<script>

function loadDoc() {
  var xhttp = new XMLHttpRequest();
  xhttp.onreadystatechange = function() {
    if (xhttp.readyState == 4 && xhttp.status == 200) {

      document.getElementById("demo").innerHTML = xhttp.responseText;
    }
  };
  xhttp.open("GET", "127.0.0.1:5000/search/", true);
  xhttp.send();
}
</script>

</body>
</html>

如您所见,HTTP 请求已发送到 127.0.0.1:5000/search/,该请求已在浏览器中测试并正常运行,应该返回 Test Hello World,但遗憾的是没有任何反应。

基本上,我单击“请求数据”按钮(见上文),但绝对没有任何反应。

任何想法为什么?我已经坚持了好几个小时了。

【问题讨论】:

    标签: javascript http flask httprequest


    【解决方案1】:

    出于安全原因,浏览器会限制从脚本中发起的跨域 HTTP 请求。例如,XMLHttpRequest 遵循同源策略。因此,使用 XMLHttpRequest 的 Web 应用程序只能向自己的域发出 HTTP 请求。为了改进 Web 应用程序,开发人员要求浏览器供应商允许 XMLHttpRequest 进行跨域请求。

    这些资源可能会有所帮助;
    HTTP access control (CORS)
    Using CORS

    【讨论】:

      【解决方案2】:
      "127.0.0.1:5000/search/"
      

      您的网址缺少其架构。你需要在前面加上http://

      如果您打开浏览器的开发者工具并查看“网络”选项卡,您应该会看到其中列出了 404 错误。


      一旦您解决了这个问题,您很可能会遇到 this question 中所述的跨域错误

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-04-19
        • 2019-06-13
        • 2015-11-17
        • 2021-04-29
        相关资源
        最近更新 更多