我有一個簡單的jquery ajax調用來更新輸入框中的數據。當我在輸入中有任何標記時,例如<div>
它不會將它傳送給控制器。任何幫助,請我如何調用Ajax和保存在它在字符串中使用<>調用JQuery.Ajax
$.ajax({
type:post,
url: "/dom/updatelement",
data: "name="+name+&id="+id
});
凡name
可能包含標記有HTML代碼標記數據庫texxt。
我有一個簡單的jquery ajax調用來更新輸入框中的數據。當我在輸入中有任何標記時,例如<div>
它不會將它傳送給控制器。任何幫助,請我如何調用Ajax和保存在它在字符串中使用<>調用JQuery.Ajax
$.ajax({
type:post,
url: "/dom/updatelement",
data: "name="+name+&id="+id
});
凡name
可能包含標記有HTML代碼標記數據庫texxt。
下面是一個POST請求發送數據的正確方法:
$.ajax({
type: 'post',
url: '/dom/updatelement',
data: { name: name, id: id }
});
jQuery將確保以正確的URL編碼數據使用此語法時。
你當然可以有可能通過手使用encodeURIComponent
方法做到了這一點:
$.ajax({
type: 'post',
url: '/dom/updatelement',
data: 'name=' + encodeURIComponent(name) + '&id=' + encodeURIComponent(id)
});
但說實話第一種方法似乎有點更具可讀性和優選。
謝謝,對不起,仍在掙扎。只要我把<放在文本中,它就不會去控制器。嘗試使用encodeURIComponent,仍然沒有去控制器。 – user1724268
這是一個ASP.NET應用程序嗎? ASP.NET會自動阻止包含這些字符的請求。例如,在ASP.NET MVC中,您可以使用'[ValidateInput(false)]'屬性來修飾相應的控制器操作以禁用此行爲。 –
首先,你應該做出正確的Ajax調用:
$.ajax({
type: "POST",
url: "/dom/updatelement",
data: {
name: name,
id: id
}
});
接下來,你可以在使用特殊功能(例如,在PHP htmlspecialchars()
)控制器部分轉換的字符,如<
或>
。
對不起,不使用PHP,使用ASP.NET MVC 4,所以不能嘗試特殊字符。只要我添加一個<不會去控制器。 – user1724268
如果您有語法高亮顯示,您應該立即在您的代碼中看到語法錯誤... – ThiefMaster