我使用以下代码设置了一个简单的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服务器出了点问题。
答案 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,