JQuery Ajax Response: работает в браузере, ноль на мобильном устройстве - PullRequest
1 голос
/ 22 марта 2011

первый пост здесь.У меня есть вопрос, связанный с безопасностью, но я, честно говоря, не уверен.

Я создаю мобильное приложение с помощью PhoneGap (в основном это HTML-страница с jQuery / CSS).Я обращаюсь к веб-службе .asmx, например:

$.ajax({ 
    type: "POST", 
    url: "http://mydomain.com/customPage.asmx/LoginMember", 
    data: memberData, 
    contentType: "application/json; charset=utf-8", 
    dataType: "json", 
    success: function(msg) { 
            alert("This is my message: " + msg); 
    }, 
    error: authenticateFailed 
    }); 

Когда я проверяю это на своем рабочем столе (Mac, Safari), звонок успешен.Моя переменная "msg" содержит какой-то XML в формате строки.Все хорошо.Вот что показывает мое предупреждение, когда вызов успешен и данные существуют:

<User><Membership><Item>MemberLoginStatus</Item><Type>XML</Type><Status>1</Status><Description>Succeeded</Description></Membership></User>

Но когда я беру тот же код и переношу его на свое устройство (iPhone, PhoneGap), происходит что-то еще.Вызов все еще успешен, и моя функция успеха срабатывает, но моя переменная 'msg' не имеет данных.Я получаю это предупреждение: «Это мое сообщение: ноль»

Я пытался исследовать это, но, похоже, не могу точно определить, что может быть источником проблемы.Я не думаю, что это мой код, но не уверен, является ли это проблемой с jQuery, PhoneGap или чем-то совершенно другим.

На данный момент, я думаю, что это какая-то проблема безопасности.Я заметил, что когда я тестирую в Chrome, я получаю тот же «нулевой» ответ, что и на своем устройстве.Возможно, это связано с «Политикой единого происхождения?»

Я пытался опубликовать свой вопрос в Google GroupG PhoneGap, на форуме jQuery, и не очень любил.Я был бы очень признателен за любые мысли / советы, и я надеюсь, что кто-то еще сталкивался с таким типом поведения раньше.

Спасибо!-Felix

// Редактировать: Исправлена ​​опечатка URL.Добавлены успешные данные ответа.

Ответы [ 2 ]

3 голосов
/ 23 марта 2011

Хорошо, проблема в том, что я идиот.Домен, на котором я тестировал, был поддоменом и, кроме того, это не публичный сайт.У меня есть IP-адрес в файле хоста на моей машине, но (конечно) нет на моем iPhone.

Когда я пытался провести тестирование на другом / публичном сайте, у нас здесь ... Теперь я вижу данные омое устройство.

Большое спасибо Haochi и typeof, за ваш быстрый ответ и несколько ответов.Из всех других сайтов, где я разместил мой вопрос, вы, ребята, невероятно быстро поделились своими мыслями.В частности, именно вопрос typeof о домене заставил меня задуматься и понять, откуда возникла ошибка.

Теперь я чувствую, что пытаюсь использовать свой ключ, чтобы попасть в мой дом ... иЯ стоял перед неправильным домом.Невероятно неловко.Но теперь я вижу данные, и это все, что имеет значение.

Еще раз спасибо!

2 голосов
/ 22 марта 2011

В вашем коде отсутствует пропущенная цитата для свойства url.

Предполагая, что это всего лишь опечатка, пытались ли вы переключить агентов пользователя в своем настольном сафари? (Должен включить пункт меню разработчика). Переключите ваш пользовательский агент на «iPhone» и посмотрите, получите ли вы нулевой ответ.

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