Как получить ответ JSON в запросе jQuery.ajax на URL-адрес устройства? - PullRequest
0 голосов
/ 27 февраля 2012

Мой сервис URL, размещенный на Google App Engine, возвращает тип контента JSON.

Пример URL-адреса это , который отлично работает в браузере.Также подтверждено с http://jsonlint.com.

Я использую следующий вызов jQuery.ajax для получения ответа.

jQuery.ajax({
type: "get",
url: "http://trim-pk.appspot.com/do?url=http://www.google.com",
dataType: "json",
success: function(response) {
    alert(response);
} 
});

Что пошло не так?Почему я не получаю ответ.Это ноль.

Я пробовал с contentType: "application/json; charset=utf-8" и contentType: "application/json; charset=ISO-8859-1", но получил 500.

Ниже приведен мой вывод Firebug.

enter image description here

Ответы [ 3 ]

1 голос
/ 27 февраля 2012

Вы настроили CORS в своем приложении AppEngine?

0 голосов
/ 27 февраля 2012

1001 * попробовать *

jQuery.ajax({
    type: "get",
    url: "http://trim-pk.appspot.com/do",
    data: {
        url: "http://www.google.com"
    },
    dataType: "json",
    success: function(response) {
        alert(response);
    } 
});
0 голосов
/ 27 февраля 2012

: и / являются зарезервированными символами в Url и имеют специальное значение.

Чтобы использовать их в параметрах Url, вы должны "Url encode" их.Браузеры делают это автоматически.

В Javascript вы должны делать это вручную с помощью функции encodeURIComponent().Это должно сделать трюк:

jQuery.ajax({
    type: "get",
    url: "http://trim-pk.appspot.com/do?url=" + encodeURIComponent("http://www.google.com"),
    dataType: "json",
    success: function(response) {
        alert(response);
    } 
});

Обновление: заменен encodeURI на encodeURIComponent.

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