функция обратного вызова успеха jQuery.ajax, не выполняемая

У меня есть вызов Ajax JavaScript (jQuery.ajax), который не выполняет функцию обратного вызова успеха.

$.ajax({
        url: target,
        contentType: 'application/json; charset=utf-8',
        type: 'POST',
        // type: 'GET',
        dataType: 'jsonp',
        error: function (xhr, status) {
            alert(status);
        },
        success: function (result) {
            alert("Callback done!");
            // grid.dataBind(result.results);
            // grid.dataBind(result);
        }
    });

Я вижу в поджигателе, что запрос отправляется, и корректный результат с точки зрения json возвращается как ожидалось. Что не так?

27
задан Frank Michael Kraft 7 May 2010 в 08:33
поделиться

2 ответа

Много раз я сталкивался с подобными проблемами, и в большинстве случаев причиной был неправильно сформированный json. Попробуйте получить результат в виде текстового типа данных, чтобы понять, в этом ли ваша проблема.

Также я хотел бы спросить, используете ли вы в url параметр типа "&jsoncallback=?", поскольку ваш тип данных - jsonp, а не простой json.

52
ответ дан 28 November 2019 в 04:48
поделиться

Ваш вызов $. Ajax с dataType: 'jsonp' может работать в следующих сценариях:

  1. Вы вызываете URL-адрес в том же домене вашей страницы.
  2. Вы вызываете URL из своего домена страницы, который поддерживает обратный вызов

Если вы вышли из этих двух случаев, вы ничего не можете сделать, так как вы не можете выполнять межсайтовые вызовы XmlHttpRequest.

6
ответ дан 28 November 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: