gpt4 book ai didi

php - header 中的 HTTP 内容类型

转载 作者:可可西里 更新时间:2023-11-01 16:32:52 25 4
gpt4 key购买 nike

我有一个用 php 生成 XML 文件的旧网络应用程序。此 XML 由 XMLHttpRequest 对象 (AJAX) 请求。一切正常。但是今天有一些服务器升级和网络应用程序出现了一点故障。

问题是在代码中有与 XMLHttpRequests 相关的检查。1) 如果我有一个响应,我会根据它的内容类型正确解析它。

var contentType = xhr.getResponseHeader("Content-Type"); 
//build the json object if the response has one
if(contentType == "application/json") {
response = JSON.parse(xhr.responseText);
}
//get the dom element if the response is XML
else if(contentType == "text/xml") {
response = xhr.responseXML;
} else { //by default get the response as text
response = xhr.responseText;
}

这是导致服​​务器现在返回的问题:

text/xml;charset=UTF-8

代替

text/xml

好的,我只需更改这一行,错误就会消失。但我想知道为什么服务器升级(bluehost)会对此产生影响。

这是 PHP/MySQL 环境。

最佳答案

两者都是有效的内容类型。内容类型可以由网络服务器软件(例如 Apache)或脚本(PHP)设置。由于您问题上的标签,我假设它是 PHP。

如果您控制服务器上的脚本并希望指定内容类型,可以通过添加以下行在 PHP 中轻松完成:

header('Content-Type: text/xml');

这必须在从脚本发送任何其他输出之前发生,因为 header 出现在 http 响应中的内容之前。如果 header 未在 PHP 脚本中设置,则 Web 服务器将选择一个。

如果您不控制生成 XML 的脚本或服务器,那么您只需要接受系统升级是很常见的,这可能会影响您自己的应用程序。

关于php - header 中的 HTTP 内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34753556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com