Установить мульти MimeTypes - PullRequest
0 голосов
/ 24 января 2012

Мне было интересно, что произойдет, если я запустите этот код:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>MimeType Tester</title>
    <meta charset="utf-8" />
    <meta content="text/xml; charset=utf-8" http-equiv="content-type" />
    <meta content="text/html; charset=utf-8" http-equiv="content-type" />
</head>
<body>
</body>
</html>

Мой контент будет проанализирован как XML или HTML? И то и другое? Другое

Также у меня есть JS-код, который дважды устанавливает mimetype:

req = new XMLHttpRequest();
req.overrideMimeType('text/xml');
req.overrideMimeType('text/html');

Мой контент будет проанализирован как XML или HTML? И то и другое? Другое

Есть ли разница между обоими кодами? Результат тот же?

1 Ответ

2 голосов
/ 24 января 2012

Взять HTML первым.Если сервер не интерпретирует настройку meta http-equiv=content-type и не преобразует ее в настоящий HTTP-заголовок (который, как говорит HTML4, является целью meta http-equiv, но серверы почти никогда этого не делают), то тип содержимого HTTP не затрагивается.и дело в том, что не мета-http-эквивалентная настройка (или тип документа) определяет, будет ли вызван синтаксический анализатор HTML или XML.

Таким образом, это обычно означает, что анализатор HTML будет вызываться, а конфигурация илиКод приложения, внешний по вашему вопросу, может заставить браузер обрабатывать его по-другому.(Как XML, или обычный текст, или двоичные данные, или что-то еще)

Что касается JS, я не знаю и не проверял его, но не могу думать ни о какой причине, почему второй вызов overrideMimeType нене замените настройку первого вызова, и запрос будет отправлен с типом содержимого text/html.Это, кажется, является следствием требований спецификации здесь: http://dvcs.w3.org/hg/xhr/raw-file/tip/Overview.html#the-overridemimetype%28%29-method, но это явно не охватывает этот случай.

То, как сервер интерпретирует тип mime и контент, отправляемый из браузера,полностью до кода, работающего на сервере.Может потребоваться принять во внимание тип mime для выбора парсера, он может его игнорировать или сделать что-то совершенно противоположное.

...