HTTP从本地服务器请求数据

时间:2016-05-31 15:26:18

标签: javascript http flask httprequest

我在本地计算机上运行了两个Flask应用程序。

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

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

如果我在浏览器中输入#import "CommonCrypto/CommonCrypto.h" ,我会收到以下信息:

127.0.0.1:5000/search/

如果我在浏览器中输入Test Hello World ,我会得到一个包含以下HTML代码的普通网页(这看起来都很好):

127.0.0.1:5001

正如您所看到的,HTTP请求已发送到<!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> ,该请求已经过测试并在浏览器中工作,应该返回127.0.0.1:5000/search/,但遗憾的是没有任何反应。

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

任何想法为什么?我已经被困在这几个小时了。

2 个答案:

答案 0 :(得分:2)

  

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

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

答案 1 :(得分:0)

"127.0.0.1:5000/search/"

您的网址缺少其计划。您需要使用http://作为前缀。

如果您打开浏览器的开发者工具并查看“网络”标签,则会看到其中列出的404错误。

一旦你解决了这个问题,你可能会遇到this question

中描述的Cross Origin错误