Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置多个mimetype_Javascript_Html_Mime Types_Content Type_Meta Tags - Fatal编程技术网

Javascript 设置多个mimetype

Javascript 设置多个mimetype,javascript,html,mime-types,content-type,meta-tags,Javascript,Html,Mime Types,Content Type,Meta Tags,我想知道如果我运行以下代码会发生什么: <!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="cont

我想知道如果我运行以下代码会发生什么:

<!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?二者都其他的

两种代码之间有区别吗?
结果是否相同?

首先获取HTML。除非服务器解释
meta-http-equiv=content-type
设置并将其转换为真实的http头(HTML4说这是
meta-http-equiv
的目的,但服务器几乎从不这样做),否则http内容类型不会受到影响,而不是meta-http-equiv设置(或doctype)它确定是否调用HTML或XML解析器

因此,这通常意味着将调用HTML解析器,但问题外部的配置或应用程序代码可能会导致浏览器以不同的方式处理它。(如XML、纯文本、二进制数据或其他)

至于JS,我不知道也没有测试过它,但是我想不出第二个OverrideMetype调用为什么不能替换第一个调用的设置,请求的内容类型是
text/html
。这似乎是规范要求的结果:但它没有明确涵盖这种情况


服务器如何解释从浏览器发送的mime类型和内容完全取决于服务器上运行的代码。选择解析器时可能会考虑mime类型,也可能会忽略它,或者做完全相反的事情。

我认为这是无效的。服务的内容类型不能同时为这两种类型。结果可能取决于实现。后面的statemnt没有覆盖?我认为行为没有定义。它不在规范中,因此依赖于浏览器。那么javascript呢?第二个对第一个的作用不就是第一个对HTML的作用吗?同样,可能依赖于实现。这就是我对JS部分的看法。谢谢你的引用。
req = new XMLHttpRequest();
req.overrideMimeType('text/xml');
req.overrideMimeType('text/html');