Как проверить, отправляю ли я то, что мне нужно для вызова ajax? - PullRequest
1 голос
/ 17 августа 2011

Я пытаюсь сделать AJAX-вызов с использованием JQuery, у меня фактически есть следующий код:

$('#form-check').click(function(){
        $.ajax({
            url: "http://www.domain.com/user/checkurl/",
            type: "GET",
            data: $(location).attr('pathname').substring(17) + "/" + $('#urlTxt').val(),
            error: function(){
                $('#urlTxt').css('background','#ce2b06');
            },
            success: function(data){
                $('#urlTxt').css('background','#83aa07');
                $('#form-check').css('display','none');
                $('#form-submit').css('display','block');
                $('#result').append(data);
            }
        });
    });

Однако, когда я проверяю с помощью Firebug, я не получаю никакого ответа, который вижу, я толькоПосмотрите, что сообщение отправлено, и в статусе написано (200 - нормально), но ничего не отправлено обратно, и сам вызов Ajax выполняет условие «success», за исключением того, что он не добавляет данные.Как я могу это проверить?Или чего мне не хватает?

Ответы [ 4 ]

0 голосов
/ 17 августа 2011

Это междоменный запрос.Браузеры по умолчанию блокируют ответы от междоменных сайтов.Вам нужно использовать jsonp в качестве типа данных.Просто Google тоже самое, и вы можете увидеть, как это можно сделать с помощью jquery API.Переполнение стека также вызывает вопросы.

В соответствии с той же политикой происхождения веб-страница, обслуживаемая сервером server1.example.com, не может нормально подключаться или взаимодействовать с сервером, отличным от server1.example.com.Исключением является элемент HTML.Используя преимущества открытой политики для элементов, некоторые страницы используют их для получения кода Javascript, который работает с динамически генерируемыми данными в формате JSON из других источников.Этот шаблон использования известен как JSONP.

, также я не уверен в том, как вы передаете параметры на сервер. Ваше поле данных должно идеально напоминать объект json, такой как

{
id:"123",
type:"student"
}

также в идеале вы хотели бы упомянуть тип ответа, который вы ожидаете получить, чтобы jquery мог правильно его обработать.

Это делается путем установки опции dataType

dataType: "json" // может быть html, xml и т. д.

0 голосов
/ 17 августа 2011

Если вы используете любой другой браузер, у которого нет таких инструментов, вы всегда можете использовать Fiddler , который показывает весь трафик HTTP в системе.

0 голосов
/ 17 августа 2011

это междоменный запрос?

если это междоменный запрос, попробуйте установить параметр crossDomain: true

проверьте API jQuery http://api.jquery.com/jQuery.ajax/

0 голосов
/ 17 августа 2011

вкладка Net Firebug и HTTPFox позволяют видеть полный трафик между клиентом и сервером, включая все заголовки.

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