2010-08-25 5 views
0

Il y a un paramètre de plus à envoyer avec la requête.Quel serait le meilleur moyen d'envoyer du XML au serveur en utilisant AJAX?

Donc, c'est mon code à ce jour:

$.post(url + "/SaveProfile", { xml: XML, configName: name}, function() { 
     alert("Saved"); 
    }); 

Je suis cette erreur:

A potentially dangerous Request.Form value was detected from the client

+0

changer le type de données que vous vous attendez à partir du serveur au format XML voir http://api.jquery.com/ jQuery.post/ – Akyegane

Répondre

1

Une valeur Request.Form potentiellement dangereuse a été détectée à partir du client

C'est le cadre du serveur k vous protéger des personnes qui tentent de faire des injections. Il y a des façons de désactiver cela pour la page ou pour le site entier [je ne recommanderais pas de faire cela.] La chose la plus facile à faire pour contourner est encode la chaîne et l'unencode sur le serveur.

+0

Dois-je préférer POST plutôt que GET dans ce cas? – user137348

+0

POST est probablement mieux si le xml va dépasser la limite de get dans IE. – epascarello

1

Il s'agit d'une fonction de serveur pour protéger contre les attaques par injection.

Si vous utilisez ASP.NET MVC, vous pouvez utiliser l'attribut ValidateInput pour décorer le contrôleur recevant vos données XML:

[ValidateInput(false)] 
[AcceptVerbs (HttpVerbs.Post)] 
public ActionResult 
SaveEdits (string xmlData) 
{ 
    .... 
} 

Si vous utilisez ASP.NET classique, utilisez la directive votre page .aspx (non recommandé, pourrait ouvrir des questions de sécurité):

<%@ Page ValidateRequest="false" ... %>

+0

Oui, mais l'éteindre n'est pas un choix de sauvegarde. – user137348

+0

C'est, si vous l'éteignez seulement où vous en avez besoin et vous validez les données correctement vous-même. –

Questions connexes