在jQuery中,我們通常利用$.ajax或$.post進行數據傳遞處理,但這裡通常不能傳遞特殊字符,如:“<”。本文就介紹如何傳遞這種含特殊字符的數據。
1、准備頁面和控制端代碼
頁面代碼如下:
<script type="text/javascript"> $(function() { $("#btnSet").click(function() { var a = $("#txtValue").val(); var data = { Name: a }; alert(data); $.ajax({ url: '@Url.Action("MyTest")', type: 'post', dataType: 'json', data: data, }); }); } ); </script> <h2>Index</h2> <input type="text" id="txtValue"/><input type="button" value="設置" id="btnSet"/>
後台代碼如下:
public ActionResult MyTest(StudentInfo stu) { return Content("OK"); }
其中StudentInfo定義如下:
public class StudentInfo { public string Name { get; set; } }
2、測試數據傳遞
當我們傳遞普通數據時,一切正常。
但當輸入含特殊字符的數據時,不能正常傳遞到後台。
3、處理方法
如果確定要傳遞特殊字符,需要對jQuery代碼作調整,調整後的請求代碼如下:
<script type="text/javascript"> $(function() { $("#btnSet").click(function() { var a = $("#txtValue").val(); var data = JSON.stringify({ Name: a }); alert(data); $.ajax({ url: '@Url.Action("MyTest")', type: 'post', dataType: 'json', data: data, contentType: 'application/json' }); }); } ); </script>
調整的地方主要有兩點:
對要傳遞的json數據作序列化JSON.stringify
在$.ajax請求中新增參數:contentType:'application/json'
好了,以上就是本文的全部所述,希望大家喜歡。