$(document).ready(function () {
$("#loginForm").submit(function (e)
{
var Data = $(this).serializeArray();
var formURL = $(this).attr("action");
var PostData =
{
"CompanyName": $(this).serializeArray().CompanyName,
"Username": $(this).serializeArray().Username,
"Password": $(this).serializeArray().Password
}
$.ajax(
{
url: formURL,
data: PostData,
success: function (data, textStatus, jqXHR) {
alert("Data" + data);
alert("Jq" + jqXHR);
alert("textStatus" + textStatus);
},
error: function (jqXHR, textStatus, errorThrown) {
alert("Failed..ajax error response type " + textStatus);
}
});
e.preventDefault(); //STOP default action
})
});
$("#loginForm").submit(); //SUBMIT FORM
这是对C#代码的一个简单的Ajax请求,我知道。我确定C#给出了正确的值(根据情况)。
根据情况,C#返回true
或false
。但是在任何情况下,这个Ajax脚本都没有给我一个我编码的警报窗口。
相反,我从
得到了这个回应 This XML file does not appear to have any style information associated with it. The document tree is shown below.
<boolean xmlns="http://schemas.microsoft.com/2003/10/Serialization/">false</boolean>
当false
时,标签中的值只有在真实时才会发生变化。
任何人都可以告诉我为什么success
或error
都无效。
答案 0 :(得分:0)
从它的名称可以看出.serializeArray()
方法返回一个数组 - 而不是一个对象。该数组的格式为:
[
{
name: "a",
value: "1"
},
{
name: "b",
value: "2"
},
{
name: "c",
value: "3"
}
]
因此,要访问第三个value
,您需要提供索引2 - ..[2].value
... name
...[2].name
。您的代码有错误会阻止进行ajax调用。错误是否可能来自其他地方?
因此改变:
var PostData =
{
"CompanyName": $(this).serializeArray().CompanyName,
"Username": $(this).serializeArray().Username,
"Password": $(this).serializeArray().Password
}
要:
var PostDate = $(this).serialize();
答案 1 :(得分:0)
使工作更好的东西是:
$("#loginForm").submit(function (event) {
event.preventDefault();
$.post($(this).attr("action"), $(this).serialize())
.done(function (results) {
alert(results);
})
.fail(function (error) {
alert(error);
})
.always(function () {
alert("AJAX Complete");
});
});