Ajax-запрос возвращает 200 OK, но вместо успеха генерируется событие ошибки - PullRequest
722 голосов
/ 31 мая 2011

Я реализовал запрос Ajax на своем веб-сайте, и я вызываю конечную точку с веб-страницы.Он всегда возвращает 200 OK , но jQuery выполняет событие ошибки.Я много чего перепробовал, но не смог разобраться в проблеме.Я добавляю свой код ниже:

jQuery Code

var row = "1";
var json = "{'TwitterId':'" + row + "'}";
$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: json,
    dataType: 'json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});
function AjaxSucceeded(result) {
    alert("hello");
    alert(result.d);
}
function AjaxFailed(result) {
    alert("hello1");
    alert(result.status + ' ' + result.statusText);
}

C # код для JqueryOpeartion.aspx

protected void Page_Load(object sender, EventArgs e) {
    test();
}
private void test() {
    Response.Write("<script language='javascript'>alert('Record Deleted');</script>");
}

Мне нужна строка ("Record deleted") после успешного удаления.Я могу удалить контент, но не получаю это сообщение.Это правильно или я делаю что-то не так?Как правильно решить эту проблему?

Ответы [ 16 ]

2 голосов
/ 01 мая 2018

Смотрите это . Это также похожая проблема. Работая я попробовал.

Не удалять dataType: 'JSON',

Примечание: выводите только JSON Formate только в PHP-файле, если вы используете только php echo, ваш ajax-код возвращает 200

2 голосов
/ 30 января 2014

Еще одна вещь, которая запутала меня, это использование localhost вместо 127.0.0.1 или наоборот.Очевидно, JavaScript не может обрабатывать запросы от одного к другому.

1 голос
/ 15 октября 2018

Если вы всегда возвращаете JSON с сервера (без пустых ответов), dataType: 'json' должно работать и contentType не требуется.Однако убедитесь, что вывод JSON ...

jQuery AJAX сгенерирует 'parseerror' для действительного, но не сериализованного JSON!

1 голос
/ 22 марта 2016

У меня была такая же проблема. Это произошло из-за того, что мой ответ JSON содержит некоторые специальные символы, а файл сервера не был закодирован с использованием UTF-8, поэтому при вызове Ajax это был недопустимый ответ JSON.

0 голосов
/ 21 апреля 2018

Ваш скрипт требует возврата в тип данных JSON.

Попробуйте это:

private string test() {
  JavaScriptSerializer js = new JavaScriptSerializer();
 return js.Serialize("hello world");
}
0 голосов
/ 31 мая 2011

Попробуйте выполнить

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow',
    contentType: 'application/json; charset=utf-8',
    data: { "Operation" : "DeleteRow", 
            "TwitterId" : 1 },
    dataType: 'json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});

OR

$.ajax({
    type: 'POST',
    url: 'Jqueryoperation.aspx?Operation=DeleteRow&TwitterId=1',
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    cache: false,
    success: AjaxSucceeded,
    error: AjaxFailed
});

Используйте двойные кавычки вместо одинарных кавычек в объекте JSON. Я думаю, что это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...