iPhone dashcode xmlhttprequest нет ответа - PullRequest
1 голос
/ 25 августа 2009

Я занимаюсь разработкой веб-приложения для iPhone с кодом. Мое приложение работает нормально, когда я просматриваю его с помощью симулятора iphone. При развертывании его на веб-сервере я никогда не получаю ответ от XMLHttpRequests. Вот код, который я использую:

function get(feedURL, handler) {
    var onloadHandler = function() { handler(xmlRequest); };    
    var xmlRequest = new XMLHttpRequest();
    xmlRequest.onload = onloadHandler;
    xmlRequest.open("GET", feedURL);
    var credentials = encodeBase64(_login.username + ':' + _login.password);
    xmlRequest.setRequestHeader("Authorization", "Basic " + credentials);
    xmlRequest.send();
}

Когда я присоединяю обработчик onreadystatechange, я вижу, что запрос переходит в состояние 4. Я также вижу запросы в журналах своего сервера. Я также добавил заголовок запроса «no cache», который не помог. Я попробовал это на локальном веб-сервере на имеющемся у меня пакете хостинга, и мне не повезло заставить его работать.

Ответы [ 3 ]

2 голосов
/ 18 сентября 2009

выстрел в темноте, но apple docs говорят это.

домен запроса URL пункт назначения должен быть таким же, как тот, который обслуживает страницу, содержащую сценарий. Это значит, к сожалению, что клиентские скрипты не могут получить данные веб-службы из других источников, и смешать эти данные на странице. Все должно исходить из того же домен. В этих условиях вы не нужно беспокоиться о безопасности оповещения, пугающие ваших пользователей.

Каковы значения status и statusText? Также попробуйте getAllResponseHeaders () для получения дополнительной информации.

Кроме того, если вы хотите просто выполнить базовую аутентификацию, вы можете просто передать ее в open () следующим образом:

open("method", "URL", asyncFlag, "userName", "password")
1 голос
/ 16 сентября 2009

iPhone, вероятно, не ожидает получения заголовков Basic Auth, так как вы вручную устанавливаете заголовок запроса. Попробуйте добавить имя пользователя и пароль к URL-адресу (после процентного кодирования) и выполнить запрос таким образом.

0 голосов
/ 30 августа 2009

Может быть, попробовать новые возможности отладки, которые являются частью DashCode 3.0 (новинка для Snow Leopard)? Не совсем ответ, но, возможно, смена обстановки - или новый отладчик - что-то расшатает.

...