Dojo's xhrPost & Firefox - PullRequest
       22

Dojo's xhrPost & Firefox

2 голосов
/ 23 мая 2011

У меня есть сценарий входа, который отправляет имя пользователя / пароль в виде json на сервер.Он использует POST, поэтому на стороне клиента это делается с помощью xhrPost.Проблема заключается в том, что когда я пытаюсь войти в систему с помощью Firefox, браузер не отправляет запрос POST, а вместо этого отправляет запрос OPTIONS и фактически не отправляет никаких параметров.Код POST великолепен в Chrome и Safari, поэтому с Firefox определенно что-то происходит.Сервер входа на другой IP: порт, так что это междоменный запрос, я не знаю, имеет ли это значение.

Вот код:

dojo.xhrPost({
    url: settings().get('login_server'),
    postData: dojo.toJson({username:user,password:pass}),
    handleAs: 'json',
    headers: { "Content-Type": "application/json", "Accept": "application/json"},
    load: function(data,status) { ... },
    error: function(error,status) { ... }
})

1 Ответ

0 голосов
/ 21 июля 2011

Вы не можете надежно использовать XMLHttpRequest в разных браузерах для выполнения междоменной публикации, если сервер не поддерживает контроль доступа HTTP .Вот почему Dojo выполняет запрос OPTIONS для проверки заголовка Access-Control-Allow-Origin.

Вы можете использовать dojo.io.iframe для POST в другой домен, но проверка на успешное завершение не выполняется 'Это возможно, если конечная точка входа в систему не возвращает специально отформатированную страницу (в основном содержащую JSON внутри текстовой области).

Браузеры, поддерживающие XMLHttpRequest Level 2 , могут выполнять междоменные запросы.Вот почему он работает в Chrome / Safari и т. Д.

...