XMLHttpRequest无法向Flask服务器发出请求

时间:2019-03-15 19:01:44

标签: javascript python python-3.x flask webserver

我使用以下代码设置了一个简单的flask服务器:

from flask import Flask
from flask_cors import CORS
app = Flask(__name__)
CORS(app)

@app.route("/")
def helloWorld():
    return "Hello, cross-origin-world!"

if __name__ == '__main__':
    app.run(host = '0.0.0.0', port='5000')

我正在从js使用以下代码向地址发送请求

    const theUrl="<myip>:5000/";
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false); 
    xmlHttp.send();
    console.log(xmlHttp.response);

控制台显示

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <title>404 Not Found</title> <h1>Not Found</h1> <p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

当我尝试从浏览器访问相同的URL时,它将返回

Hello, cross-origin-world!

我在处理服务器时出问题了吗?我已经在一个虚拟地址上尝试了js代码,并且能够获取该网站的内容。 Flask服务器出了点问题。

1 个答案:

答案 0 :(得分:1)

只需为文件上传写些东西。

希望这会有所帮助。

$('.custom-file-input').change(function () {
    console.log($(this)[0].files[0].name);
    $('.custom-file-label').text($(this)[0].files[0].name);
    var formData = new FormData();
    formData.append('file', $(this)[0].files[0]);
    var xhr = new XMLHttpRequest();
    xhr.open('POST', '/', true);
    xhr.send(formData)

我不明白为什么有人会使用XHR来获取请求,难道您不能只使用Ajax吗?

最后一个参数是连接是否异步。也许那是什么问题?

此外,请勿在生产环境中使用Flask内置的网络服务器,例如,它不能应付多个用户测试。

此外,也许有人可以告诉我为什么不这样做,但是,我认为您最好在端口声明后仅将url作为url部分,在我的示例中,请注意,我只告诉jquery或js发布数据发送到/,这是因为这意味着本地服务器,或者被解释为意味着它本身,因此默认情况下会在服务器IP前面加上端口5000,