L'application flask accepte les données json du front-end, mais la requête flask ne les accepte pas avec succès. Elle ne contient aucune donnée et elle ne fonctionne pas même après avoir modifié de nombreuses fonctions.
code 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)
}
});
});
});
Afficher les fonctions dans le flacon :
@main.route('/getjson', methods = ['GET', 'POST'])
def getjson():
a = request.json
if a:
return jsonify(user = "Right")
return jsonify(user = "error")
Détermine uniquement si request.json existe, mais la chaîne renvoyée est toujours "erreur". Il y a toujours null dans request.json. Plus tard, j'ai modifié request.args.get(), mais cela n'a pas fonctionné non plus. Où me suis-je trompé ? Je demande sincèrement des conseils.
J'ai trouvé la réponse, c'était juste un problème avec la partie jquery. Le paramètre contentType de $.ajax est par défaut "application/x-www-form-urlencoded". Vous devez définir ce paramètre sur application/json.
Référence : https://flask.readthedocs.io/...
http://stackoverflow.com/ques...
L'ajax de jquery ne nécessite pas JSON.stringify lors de l'envoi de données, il les gérera automatiquement.
D'après votre description, vous avez trouvé le problème, pourquoi ne pas continuer à l'essayer, ou lire la documentation
Résultats de sortie
request.json est très étrange. Il n'a vraiment aucune donnée, mais il peut être utilisé. La raison pour laquelle il n'est pas utile ici est la suivante :
Je n'ai donc utilisé avec succès request.json qu'une seule fois, mais je n'ai plus jamais réussi, car c'est magique. Si vous pouvez trouver une alternative à request.json, s'il vous plaît.