我是 Flask 和 js 的新手,最近几天一直在尝试将数据从表单 POST 到 API。
以下是 HTML 文件脚本标签中提交按钮的代码:
function onclick() {
var formdata = {
"name": $("#fnamei").val(),
"email": $("#email").val(),
"pnum": $("#password").val(),
"dob": $("#dob").val()
};
formdata = {
type: "POST",
contentType: "application/json",
headers: { //added headers later to try
'Accept': 'application/json',
'Content-Type': 'application/json'
},
data: JSON.stringify(formdata),
body: JSON.stringify(formdata), //added body later to try
dataType: 'json',
// url: "{{ url_for('login') }}"
url: "/login"
};
$.ajax(formdata);
}
这是app.py文件中的函数:
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
return request.get_json()
当我提交表单时,收到错误 415:不支持的媒体类型 - 未尝试加载 JSON 数据,因为请求内容类型不是“application/json”。我多次提到内容类型,所以我不明白为什么它不被接受。
您似乎多次使用同一个变量,这导致第一个声明的变量被取消。尝试使用以下解决方案。
如果还是不行请尝试使用
data : formdata1
。希望这能成功:)
function onclick() {
var formdata1 = {
"name": $("#fnamei").val(),
"email": $("#email").val(),
"pnum": $("#password").val(),
"dob": $("#dob").val()
};
var formdata2 = {
type: "POST",
contentType: "application/json",
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
data: JSON.stringify(formdata1),
//body: JSON.stringify(formdata1),
dataType: 'json',
// url: "{{ url_for('login') }}"
url: "/login"
};
$.ajax(formdata2);
}