Я изучаю отправку формы 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
Вообще говоря, вам не нужно делать собственное генерирование строк для данных формы. вы можете просто «сериализовать()» форму, и jquery позаботится обо всем этом для вас. С помощью вашего метода вы рискуете создавать сломанные строки, если какое-либо из названий полей/значений содержит метасимволы HTML/формы. –
Благодарим вас за отзыв, но я знаю, что передаю данные так, как я намеревался, поскольку я видел эту работу - я вызываю SubmitForm из самой кнопки Submit - я добавлю код. – DigitalJedi805