jQuery ajax 传数据到后台,后台返回时success函数不执行问题

来源:互联网 发布:零基础学编程需要多久 编辑:程序博客网 时间:2024/06/05 10:47

困扰两天的问题终于解决了!!jQuery ajax 传数据到后台,后台返回时success函数不执行问题。最近写一个.net注册界面,想要前台输入的表单数据,通过ajax提交到后台,后台接收成功后,自动写入数据库,然后返回给前台一个成功状态。一直测试,success函数不执行,不知道是什么问题,终于找到了答案,原来删除 dataType属性就可以了,后台程序某处之前调试时,echo了一些字符,这就破坏了浏览器的json格式,可能这样就不触发success方法了。期间遇到的问题:前台向后台传递数据时,有两种方式:通过form表单提交数据 (自动提交)

1.通过form表单提交数据 (自动提交)
2.通过aiax提交表单:(手动提交)

下面将分别介绍这两种方法:
1.通过form表单提交数据 (自动提交)

index.html:

 <form action="login.aspx"  method="post">    <input     type="text"     name="user"/>        .....    <input     type="text"     name="***"/>     ......    <input     type="text"     name="***"/>     ......<input     type="submit"   /></form>

自动提交的js代码:

$(document).ready(function (e){   form.submit();});
这样,会自动调用系统的提交,系统会将含有name的input的值传递给后台。后台:Request.Form["user"]    接收数据

2.通过aiax提交表单:(手动提交)
index.html中的提交按钮变成:

<input type="button" value="立即注册" onclick="tijiao()"/>

ajax提交:

function tijiao(){     //获取表单数据    var user = $.trim($("#user").val());    var password = $.trim($("#pasword").val());    var sex = " ";    var birthday = $.trim(parseInt($("#year").val()) + "-" + parseInt($("#month").val()) + "-" + parseInt($("#day").val()));    var place = $.trim($("#province").val() + "-" + $("#city").val() + "-" + $("#county").val());    if (document.getElementsByClassName("sex_div_1_pic")[0].style.backgroundPositionY == "-355px")        sex = "男";    else        sex = "女";    $(ajax{       type: "post",       url: "index.aspx",       data: "user=" + user + "&password=" + password + "&sex=" + sex + "&birthday=" + birthday + "&place=" + place,   //dataType: "text/plain",前台提交的数据类型  (这个属性在调试的时候可能会不触发success的执行)         contentType: "application/x-www-form-urlencoded",  //后台返回前台的数据类型        success: function (data, status) {   //这里的data是后台Response.Write(user); 的数据               alert(data+status);           }     });  }

注意:
1. data:$(‘#yourformid’).serialize(),// 你的formid
serialize() 方法通过序列化表单值,创建 URL 编码文本字符串。
序列化的值可在生成 AJAX 请求时用于 URL 查询字符串中。
2. 在后台,还可以直接用控件的方法,直接获取表单里面的值,以此来实现前台后台的交互,这里实际上是通过隐藏表单实现的。也就是通过form表单
提交数据 (自动提交)的。
3.后台返回前台的都是json,前台可以自动解析,前台传的数据最好也是json,带有一定的数据格式,方便操作。

阅读全文
0 0