我正在探索AJAX表单提交,并且遇到了一个问题,我的AJAX调用返回一个错误,几乎没有任何信息为什么。为什么AJAX调用返回状态代码0
我SubmitForm方法如下:
function SubmitForm(FormId,Container)
{
var FormElement = document.getElementById(FormId);
var TargetUrl = document.URL + "resource/form/" + FormId + ".php";
var SubmitUrl = TargetUrl + "?action=submit";
var SuccessUrl = TargetUrl + "?action=success";
var ErrorUrl = TargetUrl + "?action=failure";
var DataString = "";
for(var i = 0; i < FormElement.length; i++)
{
if(i > 0)
DataString += "&"
DataString += FormElement.elements[i].name + "=" + FormElement[i].value;
}
$.ajax({
type: "POST",
url: SubmitUrl,
data: DataString,
success: function() {
RequestAjax(Container,SuccessUrl);
},
error: function(object, textStatus, errorThrown){
console.log(textStatus + "|" + errorThrown + "|" + object.status + "|" + object.responseText);
RequestAjax(Container,ErrorUrl);
}
});
return false;
}
正在从提交:
<input name="submit" type="submit" id="submit" class="submit" value="Login" onClick="javascript: SubmitForm('loginForm','userData');" />
而且我得到的输出是这样的;
error||0|
我知道我想要打URL存在,并已使用基本相同的代码在另一种情况下提交表单,但我遇到你在上面看到的真正indescript问题。
任何意见将不胜感激。
你是如何调用'SubmitForm'? – epascarello
一般来说,你不需要为表单的数据做你自己的字符串生成。你可以''serialize()'表单并且jquery会为你处理所有这些事情。如果任何字段名称/值包含HTML /表单元字符,则使用您的方法可能会产生断开的字符串。 –
谢谢你的提示,但我知道我按照我打算的方式传递数据,因为我已经看到了这个工作 - 我从Submit按钮本身调用了SubmitForm - 我将添加代码。 – DigitalJedi805