[英]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.