如何利用jQuery post傳遞含特殊字符的數據


    在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'


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM