2010-08-25 35 views
0

還有一個參數需要發送。使用AJAX將一些XML發送到服務器的最佳方式是什麼?

所以這是我到目前爲止的代碼:

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

我得到這個錯誤:

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

+0

變化數據,你從服務器期待回XML 看到類型http://api.jquery.com/ jQuery.post/ – Akyegane 2010-08-25 14:17:18

回答

1

從客戶端檢測到有潛在危險的Request.Form值

這是服務器端框架k保護您免受試圖注射的人。有許多方法可以禁用該頁面或整個站點的內容[我不會推薦這麼做。]最簡單的方法就是在字符串encode之後將其解碼到服務器上。

+0

在這種情況下,我應該更喜歡POST over GET嗎? – user137348 2010-08-25 14:40:50

+0

如果xml將超過獲取IE的限制,POST可能會更好。 – epascarello 2010-08-25 20:30:08

1

這是防止注入攻擊的服務器功能。

如果您使用ASP.NET MVC,您可以使用ValidateInput屬性來裝點控制器接收XML數據:

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

如果您使用經典ASP.NET,使用該指令在您的.aspx頁面中(不推薦,可能會打開安全問題):

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

+0

是的,但將其關閉不是保存選擇。 – user137348 2010-08-25 14:41:35

+0

就是說,如果您只在需要的地方關閉它,並且您自己可以正確驗證數據。 – 2010-08-25 14:59:20

相關問題