JQuery AJAX пост dataType: «JSON» работает на Android, но не работает на iPhone4 - PullRequest
2 голосов
/ 08 июня 2011

Я создаю приложение phonegap, которое взаимодействует с настроенным веб-сервисом.Возникла странная проблема, которую я не могу объяснить.Тот же самый точный код работает правильно на Android, но не работает на iPhone.Это просто jQuery.

Вот код:

$.ajax({
    url: app_domain + '/sessions',
    type: 'POST',
    dataType: 'json',
    data: {
        session: {
            email: u_email,
            password: u_password 
        },
        mobile: '1' },
    async: true,
    cache: false,
    success: function(data){

        // do cool stuff here

    },
    error: function(){

        // complain here                

    }
})

А вот часть, которую я не могу понять.Когда я просматриваю журналы своего сервера, чтобы попытаться выяснить, что не так с этим POST-запросом, я вижу следующее для android:

...
Processing by SessionsController#create as JSON
...[SUCCESS]

и для запроса iPhone:

...
Processing by SessionsController#create as HTML
...[FAIL]

Разница в JSON (правильно) для POST, созданного на устройстве Android, и HTML (неверно) для POST, созданного на iPhone4.

Что дает?Есть идеи?Спасибо!

ps. Первоначально она была написана как функция jquery $ .post () и имела тот же результат.Я переписал его как $ .ajax () для повышенной специфичности ...

1 Ответ

2 голосов
/ 08 июня 2011

Возможно, вам нужно изменить исходящие заголовки HTTP, чтобы указать, что вы на самом деле отправляете JSON.Добавьте заголовки к вашей карте ajax:

headers: {'Content-Type': 'application/json'}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...