这是js中的代码<script> async function suan() { try { while (true) { let response = await fetch('http:/127.0.0.1/suanfa', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ 'user_name': '{{user_name}}' }) }); let data = await response.json(); document.getElementById('myth').innerHTML = data.result; } } catch (error) { console.error(error); } } </script>接着是python中的代码@app.route('/suanfa', methods=['POST']) def suanfa(): print("28389") global conn data = request.get_json() a = data['user_name'] print(a) conn.sendall("begin".encode()) time.sleep(0.5) result = suanfa.main(a) return jsonify({'result': result}) app.run(host='127.0.0.1', port=5000, debug=True) # Flask类的run方法在本地服务器上运行应用程序,没有该方法,上面代码中的路由装饰器不会被执行即绑定的地址不会被注册 # app.run(host, port, debug, options)。运行时总有如下错误127.0.0.1 - - [09/May/2023 22:39:31] "POST /127.0.0.1/suanfa HTTP/1.1" 404 -。请问是什么原因?如何修改
时间: 2023-06-14 12:04:37 浏览: 286
看起来你的 Flask 路由设置有问题,因为在浏览器中访问 `http:/127.0.0.1/suanfa` 会返回 404 错误。
你在 Flask 路由中使用的路径是 `/suanfa`,但是在 JS 中发送的请求路径是 `http:/127.0.0.1/suanfa`。请注意,路径中的斜杠应该是两个,即 `http://127.0.0.1/suanfa`。
另外,你的 Flask 路由中的 `methods=['POST']` 部分指定了只接受 POST 请求,但在 JS 中发送请求时,请求方法也必须是 POST。你可以检查一下 JS 中发送请求的方法是否正确,或者在 Flask 路由中添加 `methods=['GET']` 以接受 GET 请求。
最后,你需要将 Flask 应用程序的调试模式设置为 False,这可以通过将 `debug=True` 修改为 `debug=False` 来完成。
修改后的代码大概是这样的:
JS:
```
<script>
async function suan() {
try {
while (true) {
let response = await fetch('http://127.0.0.1:5000/suanfa', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ 'user_name': '{{user_name}}' })
});
let data = await response.json();
document.getElementById('myth').innerHTML = data.result;
}
} catch (error) {
console.error(error);
}
}
</script>
```
Python:
```
@app.route('/suanfa', methods=['GET', 'POST'])
def suanfa():
print("28389")
global conn
data = request.get_json()
a = data['user_name']
print(a)
conn.sendall("begin".encode())
time.sleep(0.5)
result = suanfa.main(a)
return jsonify({'result': result})
if __name__ == '__main__':
app.run(host='127.0.0.1', port=5000, debug=False)
```
阅读全文