【发布时间】:2021-06-29 21:33:30
【问题描述】:
尝试了所有方法,但没有响应!我找不到我错的地方!
我在获取请求时遇到了问题。 它与 FLASK localhost 无法正常工作。 我提出了一个简单的获取请求,但我得到的只是登录控制台时的不透明响应。 不过,只需通过 api 端点,我就能看到响应。
.py(烧瓶本地主机)
from flask import Flask, render_template, request, jsonify
from flask_cors import CORS, cross_origin
app = Flask(__name__)
@app.route('/findHotels',methods = ['GET','POST'])
@cross_origin()
def findHotelsHelper():
if request.method == 'GET':
response = jsonify(message="Simple server is running")
response.headers.add("Access-Control-Allow-Origin", "*")
return response
if __name__ == '__main__':
app.run(debug = True)
以下是使用 fetch api 请求数据的 html 代码
<!DOCTYPE html>
<html>
<body>
<h1>Find Nearest Hotels in your Area! </h1>
<form id="form1" action="http://localhost:5000/findHotels" method="GET">
First name: <input type="text" name="fname"><br>
Last name: <input type="text" name="lname"><br><br>
<input type="button" onclick="loadDoc()" value = "GO">
</form>
<p id="demo"></p>
<script>
async function loadDoc(){
await fetch('http://127.0.0.1:5000/findHotels', { method: 'GET', mode:'no-cors'})
.then(function (response) {
console.log(response);
return response;
}).then(function (text) {
console.log('GET response:');
console.log(text);
});
}
</script>
</body>
</html>
任何建议将不胜感激。 附言抱歉,我是堆栈溢出的新手,请原谅我这段时间没有遵循适当的帖子规则。 Image showing working get request Image showing failed/(getting opaque) request if using fetch api 另外我想指出,简单的表单也可以正常工作,我能够检索 json 数据,但我想在没有它的情况下仅使用 JS。
【问题讨论】:
-
Access-Control-Allow-Origin的标头值很奇特 - 我不了解 Python,但值*而不是no-cors似乎更合适? -
好的,很抱歉,它只是'*'。此处打错,已编辑。
-
在您的
python代码中,您有if request.method == 'GET':,但您正在使用 ajax 发送POST请求
标签: javascript html flask cors fetch-api