Content-Type HTTP标头缺少字符集属性

时间:2018-10-31 06:30:24

标签: php networking utf-8 yii2 header

在安全检查期间,其报告说js和css文件缺少“ Content-Type HTTP标头缺少字符集属性”。

请检查以下屏幕截图:

enter image description here

在我添加字符集之前,我的HTML如下所示

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="/backend/web/assets/3faf0a44/jquery.js"></script>
    </head>
</html>

然后我在

中添加了charset =“ UTF-8”
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8">
        <script type="text/javascript" src="/backend/web/assets/3faf0a44/jquery.js" charset="UTF-8"></script>
    </head>
</html>

在响应标题中未添加静态字符集,请检查以下屏幕截图:

enter image description here

那我该怎么做,以便我的Content-Type标头更改为以下内容:

  

content-type:应用程序/ javascript; charset = utf-8

2 个答案:

答案 0 :(得分:1)

让我尝试回答,您可以通过编辑apache2.conf(对于Debian像OS)或httpd.conf(CentOS象OS)并添加以下几行来实现:

#Set the correct Char set so don't need to set it per page.
AddDefaultCharset utf-8
#for css, js, etc.
AddCharset utf-8 .htm .html .js .css

来源:

答案 1 :(得分:0)

因此将其添加到html中不起作用的原因是,它不会告诉服务器任何信息,仅告诉浏览器后者下载后何时解析文件,并且仅决定解析元标记。 。 (主要的)

但是,如果您要发送数据作为http标头的一部分,并使用php来提供页面/站点/文件,则您需要执行 header()命令,将其放在其中将被附加到http标头上。您可以多次使用此命令,以添加新的位。但是您必须将所有对该函数的调用放在输出数据的任何内容之前。一旦php必须输出某些内容,它将进行编译并在该点将标头与输出一起发送,因此无法对其进行进一步的更改。

所以请尝试在文件顶部

<?php
 header('charset=UTF-8');
?>

我想那会做你想要的。