Firefox не отправит предварительный доступ к ресурсам из разных источников?

Я реализовал веб-приложение, которое использует преимущества CORS для сбора данных JSON с другого сервера. Серверы работают на разных поддоменах. Кажется, все реализовано правильно, и он работает нормально с Chromium. Ниже копия моих запросов от Chromium.

Моя проблема в том, что в Firefox (протестированном с 13.0.1) никогда не делается запрос на мой ресурс AJAX. Предварительный запрос не отправляется, и фактический запрос не выполняется. Вместо этого я получаю эту ошибку из функции XMLHttpRequest.send():

[21:40:27.546] uncaught exception: [Exception... "Access to restricted URI denied"  code: "1012" nsresult: "0x805303f4 (NS_ERROR_DOM_BAD_URI)"  location: "http://192.168.1.99:2502/static/mootools-core-1.4.5.js Line: 5398"]

Я использую Mootools' Request.JSON объект, который устанавливает различные дополнительные заголовки, что означает, что предварительный полет действительно потребуется. Тем не менее, он никогда не отправляется.

К сожалению, JSONP не вариант, так как данные чувствительны.

Кто-нибудь знает, в чем может быть проблема? Спасибо большое.


Рабочий пример из Chromium:

Предполетный запрос:

OPTIONS /api/resource HTTP/1.1
Host: dev0.mydomain.com
Connection: keep-alive
Access-Control-Request-Method: GET
Origin: http://192.168.1.99:2502
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19
Access-Control-Request-Headers: origin, x-request, x-requested-with, accept
Accept: */*
Referer: http://192.168.1.99:2502/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: [redacted]

Предполетный ответ:

HTTP/1.0 200 OK
Server: PasteWSGIServer/0.5 Python/2.7.3
Date: Fri, 29 Jun 2012 01:43:37 GMT
Content-Length: 0
Access-Control-Allow-Headers: Cookie, Origin, X-Request, X-Requested-With, Accept
Access-Control-Max-Age: 1
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://192.168.1.99:2502
Access-Control-Allow-Methods: GET
Content-Type: text/html; charset=UTF-8

"Реальный" запрос:

GET /api/resource HTTP/1.1
Host: dev0.mydomain.com
Connection: keep-alive
Origin: http://192.168.1.99:2502
X-Request: JSON
X-Requested-With: XMLHttpRequest
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.19 (KHTML, like Gecko) Ubuntu/12.04 Chromium/18.0.1025.151 Chrome/18.0.1025.151 Safari/535.19
Accept: application/json
Referer: http://192.168.1.99:2502/
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.3
Cookie: [redacted]

"Реальный" ответ:

HTTP/1.0 200 OK
Server: PasteWSGIServer/0.5 Python/2.7.3
Date: Fri, 29 Jun 2012 01:43:37 GMT
Access-Control-Allow-Origin: http://192.168.1.99:2502
Content-Type: text/html; charset=UTF-8
Content-Length: 22
Access-Control-Allow-Credentials: true

1 ответ

Решение

Ответ дается в комментариях к вопросу. Firefox не отправлял запрос из-за предоставленного мной имени пользователя для аутентификации HTTP.

Другие вопросы по тегам