在jQuery中,我們通常利用$.ajax或$.post進(jìn)行數(shù)據(jù)傳遞處理,但這里通常不能傳遞特殊字符,如:“<”。本文就介紹如何傳遞這種含特殊字符的數(shù)據(jù)。
1、準(zhǔn)備頁面和控制端代碼
頁面代碼如下:
<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="設(shè)置" id="btnSet"/>
后臺代碼如下:
public ActionResult MyTest(StudentInfo stu) { return Content("OK"); }
其中StudentInfo定義如下:
public class StudentInfo { public string Name { get; set; } }
2、測試數(shù)據(jù)傳遞
當(dāng)我們傳遞普通數(shù)據(jù)時,一切正常。
但當(dāng)輸入含特殊字符的數(shù)據(jù)時,不能正常傳遞到后臺。
3、處理方法
如果確定要傳遞特殊字符,需要對jQuery代碼作調(diào)整,調(diào)整后的請求代碼如下:
<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>
調(diào)整的地方主要有兩點(diǎn):
對要傳遞的json數(shù)據(jù)作序列化JSON.stringify
在$.ajax請求中新增參數(shù):contentType:'application/json'
好了,
聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com