8
votes

Envoi de données JQuery.ajax avec une chaîne contenant "???" Il change de valeur pour "jquery19107363727174233645_1373301489648?"

page de page JavaScript: xxx

Le contenu de la demande est envoyé au serveur: xxx

Qu'est-ce qui se passe? Est la chaîne "???" une sorte de mot de contrôle spécial ou quelque chose dans jQuery?

merci.


3 commentaires

ProcessData: FALSE Fixera ceci le plus probable.


Juste curieux: quelle version de jQuery utilisez-vous?


Pourquoi soumettez-vous ??? De toute façon? Pourquoi pas seulement nul ou un seul?


3 Réponses :


3
votes

?? est utilisé comme nom d'espace de nom de rappel dans les données de JSONP Demandes. Donc, le trouver, JQuery "promouvoir" votre demande en tant que JSONP.

JQuery Bug Tracker, ticket # 12326

Utilisez cette propriété xxx


0 commentaires

0
votes

C'est un Bug connu :

Lorsque vous publiez AJAX et les données ont "??" est le format pour jquery? p> BlockQuote>

Il est marqué corrigé même si dans les commentaires sur le bogue, il n'est clairement jamais été corrigé. La question doit être rouverte. P>

Les contours de contournement incluent apparemment la modification de votre ligne JSON sur les suivantes: P>

var model = {NumberOfCPUs:"2",NumberOfCores:"4",OSType:"Linux",OSVersion:"???"};


0 commentaires

11
votes

Si je lisais à travers les commentaires des bugs dans les autres réponses, le problème réel réside dans le fait que vous stringifiez votre chaîne JSON avant de le transmettre à DATA . Data attend un chaîne contenant une requête (par exemple "A = asdf & b = qwer" ou un objet contenant le clés et valeurs qu'il transformera en une requête). Vous êtes plutôt passant quelque chose comme '{"a": "asdf", "b": "qwer"}' , une chaîne contenant un tableau strictif qui n'est pas un mettre en doute. Il réussit en quelque sorte à convertir dans des données que le serveur comprend, mais déclenche également ce bogue / la fonctionnalité également.

solution 1

Si vous souhaitez accéder aux données via . $ _Post ['a'] pour obtenir la clé "a" dans votre objet json-objet: xxx

( source; cow-boy sur les bugs jQuery )

Solution 2

Si vous souhaitez récupérer la chaîne JSON: xxx

dans ce cas $ € ["MyLilstring"] Contient le JSON sérialisé, que vous pouvez utiliser json_decode () on.

( source; ajpiano sur les bugs de jQuery )

Un autre suwgeion

Une autre suggestion que j'ai extraite de la Commentaires (mais je suis maintenant incapable de trouver -_- ') est de définir jsonp sur false . xxx

Cela devrait arrêter jQuery d'insérer la fonction de rappel dans le r Équeste le corps aussi.


1 commentaires

Merci pour la bonne explantation, les problèmes officiels de jQuery sont mentionnés ici: Lien Et ici: Link