2009-11-13 5 views
0

Je rencontre un problème inhabituel avec JQuery ajax. J'utilise IIS pour héberger mon application web et j'ai un gestionnaire http pour lequel j'ai activé uniquement le verbe POST. En utilisant JQuery ajax, je poste des données pour ce gestionnaire http, cela fonctionne très bien dans notre environnement de développement et de test et aussi la plupart du temps sur l'environnement de production. Mais parfois, nous recevons des données postales vides sur le serveur. Lorsque nous examinons les csBytes sur IISLog, nous avons constaté qu'il était très inférieur à d'autres demandes de post-succès. Nous utilisons JSON.js pour convertir l'objet javascript en raw json string et le dernier jquery.1-3.js pour publication sur le serveur. Quelqu'un sait pourquoi cela arrive?Message vide avec JQuery Ajax Post

Répondre

0

Vous ne savez pas, mais peut-être est-ce causé par un bug de navigateur? Comme vous recevez un post vide sur le serveur, la méthode jquery post fonctionne correctement, mais il semble que la conversion json ne fonctionne pas dans certains cas.

Vous devriez jeter un coup d'oeil sur les fichiers journaux IIS pour l'USER-AGENT qui publie ces valeurs vides.

Bien sûr, il est également possible que quelqu'un fasse un POST manuel sur votre serveur ... à la recherche de vulnérabilités à exploiter.

0

Je ne pense pas que ce soit un problème avec la configuration du navigateur ni avec l'utilisateur qui l'affiche manuellement. Becuase pour même gestionnaire de session HTTP reçu certaines données de poste avec succès même client IP et agent utilisateur. Nos utilisateurs ne sont pas des professionnels de si haut niveau pour effectuer les publications manuelles. Par conséquent, je ne pense pas qu'il pourrait y avoir un problème avec la configuration du navigateur.

1

J'ai rencontré ce même problème. En utilisant tamperdata, j'ai déterminé que mon entête de réponse était un 404 err. Votre chemin est-il correctement mappé?

Ex: Cela a fonctionné sur ma machine locale pour le développement, mais pas sur le serveur IIS:

$.post('/Reservation/UpdateHeadCount', { 
     id: '<%= Html.Encode(Model.reservation_id) %>', 
     newHeadCount: SelectedVal 
}); 

Cela fonctionne à la fois:

$.post('<%= VirtualPathUtility.ToAbsolute("~/Reservation/UpdateHeadCount") %>', { 
     id: '<%= Html.Encode(Model.reservation_id) %>', 
     newHeadCount: SelectedVal 
}); 
0

Pour MVC, utilisez aide Url.Content $ .post ('@ Url.Content ("~/Settings/Load")', OnSettingsLoaded);