尝试从下面创建的 python api 检索数据时,我收到 js 文件的“无法加载资源:服务器响应状态为 500(内部服务器错误)”错误第 3 行。我尝试重新启动并再次执行该过程,但结果是相同的。
app.js
/*async function fetchdata(){*/
try {
const response = await fetch('http://127.0.0.1:5000/api/get_data');
const data = await response.json(); // Convert response to JSON
console.log('Data:', data);
// return data;
} catch (error) {
console.error('Error:', error);
}
/*}
fetchdata();*/
应用程序.py
@app.route('/api/get_data', methods=['GET'])
def get_data():
form = loginForm()
print('hello')
data = {
"ownsPython": str(User.query.filter_by(username = form.username.data).first().javascriptOwner),
"ownsJava" : str(User.query.filter_by(username = form.username.data).first().pythonOwner),
"ownsPython" : str(User.query.filter_by(username = form.username.data).first().ownsJavascript)
}
return jsonify(data)
最有用的信息将在 Flask 应用程序的日志中。当您发出请求时,请查找那里打印的任何错误或堆栈跟踪。这将帮助您查明问题。
潜在原因
@app.route('/api/get_data', methods=['GET'])
def get_data():
try:
form = loginForm()
username = form.username.data
user = User.query.filter_by(username=username).first()
if user is None:
raise ValueError("User not found")
data = {
"ownsPython": str(user.pythonOwner),
"ownsJava": str(user.javaOwner), # Fixed key
"ownsJavascript": str(user.ownsJavascript)
}
return jsonify(data)
except Exception as e:
print(f"Error occurred: {e}")
return jsonify({"error": "Internal Server Error"}), 500
您可能需要在 Flask 应用程序中配置 CORS(跨源资源共享)。
pip install flask-cors
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
aa 和测试:)
Postman或wget或curl直接测试您的API端点(http://127.0.0.1:5000/api/get_data)并查看它是否返回预期结果或错误。