繁体   English   中英

ajax调用在外部js文件中不起作用

[英]ajax call not working in external js file

我有一个只有“用户名”和“密码”字段的“注册”页面。 我想在“提交”按钮的Click事件上提交新的“用户详细信息”。 请告诉我如何使用jquery使用ajax调用。 我在ASP.net中单击按钮时定义了插入功能。 但这不起作用。

function Insert() {
    alert("Insert");

    var uname = $('#txtRUserName').val();

    alert(uname)
    var password = $('#txtRPassword').val();
    $.ajax({type: "POST",
            url: "login.aspx/Insert",
            data: "{'uname:'" + uname + ",'password:'" + password + "}",
            datatype: "text/html",
            cache: false,
            async: false,
            contentType: "text/html",
            success: function processData(r) {
                var myItem = r.d.split('#');
                alert(myItem)
            }
            //error: errorAlert
        });
    alert("jqajax")
}

有效的json,ContentType和DataType

您可以将您的通话更改为有效的json即

data: "{uname:'" + uname + "',password:'" + password + "'}",

您的内容类型必须为:

contentType: "application/json; charset=utf-8"

并且您的数据类型必须为:

dataType: "json"

因此,您的JavaScript将变为:

function Insert() {
    alert("Insert");

    var uname = $('#txtRUserName').val();

    alert(uname)
    var password = $('#txtRPassword').val();
    $.ajax({type: "POST",
            url: "login.aspx/Insert",
            data: "{uname:'" + uname + "',password:'" + password + "'}",
            datatype: "json",
            cache: false,
            async: false,
            contentType: "application/json; charset=utf-8",
            success: function processData(r) {
                var myItem = r.d.split('#');
                alert(myItem)
            }
            //error: errorAlert
        });
    alert("jqajax")
}

的EnablePageMethods

您需要像这样在脚本管理器中启用页面方法:

<asp:ScriptManager runat="server" EnablePageMethods="true">

页面背后的代码

您还需要确保您的方法具有[WebMethod]属性,并且该属性也是静态的,例如:

[WebMethod]
public static bool Insert(string uname, string password)

发布表单$(this).serializeArray(); 负责输入数据

  $(document).ready(function(){
        $('form').submit(function( e ) {
            var postData = $(this).serializeArray();
            $.ajax({
               datatype: "text/html",
               cache: false,
               async: false,
               contentType: "text/html",
                type: 'post',
                url: 'page.php',
                data: postData,
                success: function () {
                  var myItem = r.d.split('#');
                  alert(myItem)
                }
            });
            e.preventDefault();
        });
    });  

编辑:将$('form')更改为表单ID。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM