comment puis-je utiliser les données publiées de l'ajax dans le flacon?
Je vais avoir de la difficulté à obtenir des données publiées à partir de jquery ajax.
$('#clickme').click( function() {
var data = save_input(); // data
data['_sid'] = $survey_id; // survey_id injected from flask
data['_uip'] = $user_ip; // user_ip injected from flask, request.remote_addr
$.ajax({
type : "POST",
url : "{{ url_for('mod.load_ajax') }}",
data: JSON.stringify(data),
contentType: 'application/json;charset=UTF-8',
success: function(result) {
console.log(result);
}
});
console.log(data);
});
à partir du code, data
est un objet javascript comme
{
'foo' : 'foo',
'bar' : 'bar',
'fo_' : 42,
}
ce que j'essaie de faire dans la fiole est :
@mod.route('/load_ajax', methods=["GET", "POST"])
def load_ajax():
if request.method == "POST":
# load _sid and _uip from posted JSON and save other data
# but request.form is empty.
# >>> request.form
# ImmutableMultiDict([])
return str(request.form)
voir, la requête ajax est faite, mais aucune donnée n'est présentée. Je ne console.log(data)
avec ajax et je peux voir que j'ai vraiment quelques données significatives dans data
variable en jquery. mais demande.formulaire en ajax affichage est vide. Où sont mes données présentées?
- Changement
JSON.stringify(data)
àdata
et voir ce qui se passe. - Je dois recevoir les données. Comment puis-je recevoir au format JSON?
- Avez-vous essayé
request.json
? - utiliser ceci comme Données de la chaîne:
"data=" + JSON.stringify(data);
.
Vous devez vous connecter pour publier un commentaire.
Essayer
Puis à partir du serveur, vous pouvez vous référer à des variables dans les données comme ceci :
Depuis le type de contenu est spécifié comme
application/json
les données sont dansrequest.json
stringify
etcontentType
fait la job, mercicharset=UTF-8
était le truc. J'ai été chercher pendant des heures.Que par votre exemple, vous n'êtes pas l'envoi d'une valeur clé de la paire, mais plutôt l'affectation d'une chaîne JSON pour le jQuery option de données. Comme mentionné dans les commentaires que vous avez à stringify votre JSON, créer un objet avec une clé (qui sera utilisé pour accéder à la chaîne JSON à partir de flacon) et l'attribuer à la jQuery clé de données.
Avez-vous essayé de supprimer contentType? Vous supposez à publier des données sur la Fiole.
pourriez-vous essayer d'ajouter des données fausses, comme
données:{"bonjour":"monde",} à l'intérieur de l'ajax? juste pour vérifier si le bonjour à tout le monde d'arriver à la demande.forme
Sur le flacon côté, utilisation:
Les données de la variable a maintenant le dictionnaire que vous avez envoyé à l'aide d'ajax et vous pouvez maintenant manipuler avec python