Как веб-сервер обнаруживает Content-Type для документа ответа? - PullRequest
0 голосов
/ 30 июня 2010

У меня есть 2 идентичных xhtml-документа в расширениях html (1-й) и xhtml (2-й) .Разница только в расширении.

Использование ajax (jQuery 1.4.1) Я пытаюсь получить 1st , но веб-сервер (IIS 5.1) отправляет ответ с Content-Type: text/html вместо application/xhtml+xml.Если я попытаюсь получить 2nd , проблем не будет.

Для обоих документов я использую $ .ajax ({...}), но я получаю ошибку для 1st (в комментариях):

$.ajax({ 
  url: url, 
  dataType: 'xml', 
  contentType: 'application/xhtml+xml', 
  success: function(data, ts, theXhr) { ... },
  error: function(XMLHttpRequest, textStatus, errorThrown) {
    // textStatus = "parsererror"
    // errorThrown.lineNumber = 5193
    // errorThrown.message = "data is null"
    // errorThrown.name = "TypeError"
  }
});

---

Как заставить [любой] веб-сервер думать, что документ 1st является настоящим xhtml?

Ответы [ 3 ]

0 голосов
/ 30 июня 2010

AFAIK IIS использует расширения файлов для определения типа контента. Вы можете увидеть карту MIME-Type на странице конфигурации IIS.

0 голосов
/ 30 июня 2010

Как заставить [любой] веб-сервер думать, что 1-й документ является настоящим xhtml?

Из javascript ответ таков: вы не можете.Веб-сервер принимает решение о том, какой тип контента отправлять.

Если вы управляете сервером: Вы можете настроить IIS для отправки правильного типа контента

Если вы не управляете сервером: Вы не можете ничего сделать, кроме использования серверного сценария для получения страницы и отправки правильного заголовка.

Как добавить типы содержимого в IIS 5.0 (из msdn ):

Добавление типов MIME в IIS 5.0

Типы MIME можно зарегистрировать в IIS 5.0 с помощью оснастки IIS.

Например,чтобы добавить тип XML MIME на веб-сайт по умолчанию с помощью оснастки IIS:

  1. Выберите веб-сайт по умолчанию и откройте диалоговое окно «Свойства».
  2. Выберите вкладку «Заголовки HTTP».
  3. В разделе MIME Map перейдите на вкладку Типы файлов и выберите Новый тип.
  4. Введите .xml в поле «Расширение» и text / xml в поле «Тип содержимого», а затем нажмите кнопку «ОК».

Чтобы добавить тип MIME XML для всех сайтов, работающих на данном компьютере:

  1. Выберите «Информационные службы Интернета» и откройте диалоговое окно «Свойства».

  2. В разделе «Карта MIME компьютера» нажмите кнопку «Изменить» и выберите «Новый тип».

  3. Введите .xml в поле «Расширение» и text / xml в поле «Тип содержимого», а затем нажмите кнопку «ОК».

Любые другие расширения, например .xsl (расширяемые таблицы стилей),могут быть добавлены с использованием тех же процедур.

Просто измените .xml и text/html на нужные вам расширения / тип контента

0 голосов
/ 30 июня 2010

Правильно ли сформирован 1-й документ и т. Д.?Ошибка разбора может означать недопустимый xml.

...