JQuery Ajax call Не найден элемент проблемы
Я получаю ошибку javascript на firefox 3.5 при попытке вызвать метод ajax.
Пожалуйста, найдите ошибку ниже:
XML Parsing Error: no element found Location: moz-nullprincipal:{1a2c8133-f48f-4707-90f3-1a2b2f2d62e2} Line Number 1, Column 1:
^
это моя функция javascript:
function Update(Id) {
$.ajax({
type: "GET",
url: ROOT_URL + "/sevice/udates.svc/Update?Id=" + Id,
success: function(response) {
},
async: false
});
}
Ответы
Ответ 1
Ajax-вызов ожидает возврата XML (возможно, из-за плохого угадывания) и пытается разобрать его и терпит неудачу, если ничего не возвращается или оно недействительно XML..
Используйте параметр dataType
, чтобы указать формат ответа.
Из комментариев видно, что некоторые браузеры не могут обрабатывать ответ без содержания. Таким образом, обходным путем для таких случаев может быть возвращение чего-то из вашей службы (даже одно пространство).
Ответ 2
Я исправил проблему, установив mimeType в "text/html"
Ответ 3
Это известная ошибка FireFox.
https://bugzilla.mozilla.org/show_bug.cgi?id=547718
чтобы быстро исправить это, возможно, вы можете вернуть ответ с html-структурой (но без содержимого).
Ответ 4
Я столкнулся с альтернативной причиной этого - может помочь кому-то.
Если вы сделаете запрос $.ajax
(в моем случае запрос PUT
), который возвращает заголовок 200, но никакого содержимого тела, которое я видел, появляется такое же сообщение об ошибке XML Parsing - даже когда установлен dataType
до json
.
(по крайней мере) работают два решения:
- Сделать все запросы API
PUT
возвращать некоторый контент или
- Верните вместо заголовка 204 "Нет содержимого" (что я закончил)
Ответ 5
async
также является частью опций. Также укажите dataType
как xml
function Update(Id) {
$.ajax({
type: "GET",
async: false,
dataType: "XML",
url: ROOT_URL + "/sevice/udates.svc/Update?Id=" + Id,
success: function(response) {
}
});
}
Ответ 6
Вам нужно отправить html-документ на вывод (выход udates.svc в вашем случае). Если вы используете ASP.NET, вы можете сделать следующее:
Response.Clear();
Response.Write("<html xmlns="http://www.w3.org/1999/xhtml">");
Response.Write("<head><title></title></head>");
Response.Write("<body>");
Response.Write("your output");
Response.Write("</body>");
Response.Write("</html>");
Response.ContentType = "text/HTML";
Response.End();