ajax请求传递中文问题

我这个现在主要问题是,要是把用户名输成数字就可以调用后台代码,如果用户名输成中文,直接不掉用后台代码!解码也试了好像不行下面是代码

img

/验证邮箱验证码
function funiO
    varusername=$(#userName).val()://用户名
    //varusernames=encodeURI(username)
    varphone=$(#phone).val(://手机号
    varyanzheng=Number(S(#rndNum).val());
     B.ajax(
         type:post”
         url:“zaopwd.aspx/Pannamepwd”
                              +phone+’username:” “tphone: data: +username+yanzheng:”+yanzheng+””
         dataType:json
         contentType:application/json;charset=utf-8”
         success:function(data){
              //返回的数据用data.d获取内容
              console.log(data.d):
              /=1正确0和-1错误
              if(data.d==1)
                  alert(成功!)
              if(data.d=-0){
                   alert(你输入的验证码有误!);
              if(data.d==-1){
                   alert(你输入的账号信息有误!
         error:function(XMLHttpResponse,textStatus,errorThrown)
              console.1og(1异步调用返回失败,XMLHttpResponse.readyState:”+XMLHttpResponse.readyState);
              console.1og(2异步调用返回失败,XMLHttpResponse.status:”+XMLHttpResponse.status);
              console.1og(3异步调用返回失败,textStatus:+textStatus);
              console.1og(4异步调用返回失败,errorThrown:” +errorThrown)

这个datatype:"json"把json换成text也试过也不行,有知道这是怎么回事的吗
还有后台代码

img

WebMethod]
0个引用
public static int Pannamepwd(string phone,string username,int yanzheng)
    //都只要反编码一次就行了
 //string usernames = URLDecoder.decode(username, “utf-8”)
    //判断手机号是否正确注册
    Userinfo us = new UserinfoO
    us.Phone=phone
    us.Name=username
    //判断验证码是否正确
    if(mobile_code==yanzheng)
         判断是否存在该用户
         if(SalBLL.Panzhaohui(us)
             return 1else
             return-1
    else
        return 0:

你好,
我刚试了一下,输入了中文,没有问题. 虽然又可能出现乱码的情况, 但是应该还是可以调用方法的. 我怀疑还有其他的问题.
你在你的后台方法里面打个断点, 然后用IIS Express 调试一下, 查看是否进入方法.
还有一个就是,你运行的你的项目, 在页面上按F12, 在source 那边打断点,看你传的值是什么.

img

这里改一下,改成

data:{'phone':phone,'username':username,'yanzheng':yanzheng},

如有帮助,采纳支持一下,谢谢。

你后台有值传进来吗?可能的情况是编码格式不对的情况下,你的request请求的参数被中午乱码吃了,你找个请求监视期看看往后台发的请求就知道咋回事了

你的data缺少',"{'phone':'"+phone+"'}"

写过个类似的文章,可以参考https://blog.csdn.net/huanglin6/article/details/100178432?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164092932816780261961924%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=164092932816780261961924&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~rank_v31_ecpm-3-100178432.nonecase&utm_term=%E4%B8%AD%E6%96%87
前端的话转码一下,比如:username:encodeURIComponent(username) ,然后后端再转码回来就可以了