Я делаю междоменные ajax-запросы с типом данных html. Они работают нормально, когда я включаю
Access-Control-Allow-Origin
в ответе от сервера. Проблема в том, что мне нужно получить определенные заголовки из ответа сервера, и что бы я ни делал, заголовки ответа, кроме «типа контента», возвращают значение null.
jQuery выполняет запрос, получает ответ, включая заголовки (я вижу это по трафику), но не анализирует его.
я пытался использовать
crossDomain: true
Это не помогло. Вот пример ответа от сервера.
Access-Control-Allow-Origin:*
Cache-Control:private
Content-Encoding:gzip
Content-Length:514
Content-Type:text/html; charset=utf-8
X-MYRESPONSEHEADER:1
Если запрашивающий и отвечающий документ находятся на одном сервере
success: function (data, status, xhr) {
totalRows = xhr.getResponseHeader("X-MYRESPONSEHEADER");
работает отлично. Я также пытался присвоить $.ajax переменной, например
var jQxhr = $.ajax(.....
Я не понимаю, почему он не будет проанализирован, поскольку jQuery фактически делает запрос и получает ответ.
Есть идеи? Я что-то пропустил?
Обновление или комментарий дракона
Заголовки отправлены на запрос
HTTP/1.1 200 OK
Cache-Control: private
Content-Type: text/html; charset=utf-8
Content-Encoding: gzip
Vary: Accept-Encoding
Server: Microsoft-IIS/7.5
Access-Control-Allow-Origin: *
Access-Control-Allow-Headers: X-MYRESPONSEHEADER
Access-Control-Allow-Methods: POST
Access-Control-Allow-Methods: GET
X-MYRESPONSEHEADER: 24
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Wed, 29 Feb 2012 11:34:21 GMT
Длина содержимого: 514