Internet explorer 为什么?

Internet explorer 为什么?,internet-explorer,http,browser,header,http-headers,Internet Explorer,Http,Browser,Header,Http Headers,我试图在服务器端调试一个问题,我相信这与从浏览器发送的accept头有关。我的问题是,为什么Internet Explorer会将“接受”标题从一个页面更改为另一个页面?我可以从javascript更改请求头吗 以下是来自一个页面的请求: Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/

我试图在服务器端调试一个问题,我相信这与从浏览器发送的accept头有关。我的问题是,为什么Internet Explorer会将“接受”标题从一个页面更改为另一个页面?我可以从javascript更改请求头吗

以下是来自一个页面的请求:

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, application/xaml+xml, application/vnd.ms-xpsdocument, application/x-ms-application, application/x-shockwave-flash, */*
以下是来自另一个页面的请求:

Accept: */*
他们都是GET请求,我看到了内容之间的任何主要差异。所有服务都来自同一个应用服务器(Websphere)。

IE的Accept标头 根据,IE与其Accept标头“不一致”。它解释了您看到的额外值来自一个注册表项,应用程序可以将其内容类型添加到该注册表项,但没有解释为什么不总是使用此注册表项中的值:

但是,在一些导航中,您会看到IE发送了一个更完整的字符串,其中包含各种MIME类型。例如:

image/jpeg, application/x-ms-application, image/gif, application/xaml+xml, image/pjpeg, application/x-ms-xbap, application/msword, application/vnd.ms-excel, application/x-shockwave-flash, */*
按F5刷新该页面,IE可能会返回发送/再次发送。显然,IE在Accept头中选择发送的内容是不一致的,但是现在你可能很好奇这些MIME类型是从哪里来的

IE通过枚举下列注册表项中列出的值来生成此列表:

HKLM\Software\Microsoft\Windows\CurrentVersion\Internet Settings\Accepted Documents
知道这一点可能并不能真正解决你的问题。但是请注意,
*/*
仍然出现在两个接受头中,因此就内容协商而言,这里应该没有问题。但是,添加到头中的额外类型可能会使请求太大,因此可能会给您一个开始查找的线索

使用JavaScript修改请求头 您可以使用
XMLHttpRequest.setRequestHeader()
方法修改异步(XMLHttpRequest)请求的头,如中所述

另见这个问题:

免责声明:我没有尝试将此用于Accept标头

但是,如果您想要控制的请求不是AJAX请求,我不知道有什么方法可以用JavaScript修改这些请求

很抱歉,我无法为您的两个问题提供完整的答案,但我希望我提供的信息对您有所帮助