如何利用jQuery post传递含特殊字符的数据

在jQuery中,我们通常利用$.ajax或$.post进行数据传递处理,但这里通常不能传递特殊字符,如:“<”。本文就介绍如何传递这种含特殊字符的数据。

    1、准备页面和控制端代码

    页面代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<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" />

    后台代码如下:

?
1
2
3
4
public ActionResult MyTest(StudentInfo stu)
   {
     return Content( "OK" );
   }

其中StudentInfo定义如下:

?
1
2
3
4
public class StudentInfo
{
   public string Name { get ; set ; }
}

    2、测试数据传递

    当我们传递普通数据时,一切正常。

    但当输入含特殊字符的数据时,不能正常传递到后台。

    3、处理方法

    如果确定要传递特殊字符,需要对jQuery代码作调整,调整后的请求代码如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<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'

转载地址:http://www.jb51.net/article/73570.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值