Apl kelalang menerima data json dari bahagian hadapan, tetapi permintaan kelalang tidak berjaya menerimanya, dan ia tidak berfungsi walaupun selepas menukar banyak fungsi.
kod js
$(function(){
$("#test").click(function(){
$.ajax({
url: "{{ url_for('main.getjson') }}",
type: "POST",
data: JSON.stringify({
"n1": "test1",
"n2": "test2",
"n3": "test3"
}),
dataType: "json",
success: function(data){
var a = data.user
var texthtml = "<p>" + a + "</p>"
$("#result").html(texthtml)
}
});
});
});
Lihat fungsi dalam kelalang:
@main.route('/getjson', methods = ['GET', 'POST'])
def getjson():
a = request.json
if a:
return jsonify(user = "Right")
return jsonify(user = "error")
Hanya menentukan sama ada request.json wujud, tetapi rentetan yang dikembalikan sentiasa "ralat". Sentiasa ada null dalam request.json. Kemudian, saya menukar request.args.get(), tetapi ia juga tidak berjaya. Di mana silapnya saya dengan ikhlas meminta nasihat.
Saya menemui jawapannya, tetapi terdapat masalah dengan bahagian jquery. Parameter contentType $.ajax lalai kepada "application/x-www-form-urlencoded". Anda perlu menetapkan parameter ini kepada application/json.
Rujukan: https://flask.readthedocs.io/...
http://stackoverflow.com/ques...
Ajax jquery tidak memerlukan JSON.stringify apabila menghantar data Ia akan mengendalikannya secara automatik.
Mengikut penerangan anda, anda telah menemui masalahnya, mengapa tidak terus mencuba, atau membaca dokumentasi
Hasil keluaran
request.json sangat pelik memang tiada data, tetapi ia boleh digunakan Sebab ia tidak berguna di sini adalah seperti berikut:
. Jadi saya hanya berjaya menggunakan request.json sekali, tetapi tidak pernah berjaya lagi, kerana ia adalah ajaib Jika anda boleh mencari alternatif untuk request.json, sila.