响应内容类型text / html,同时期望application / json

时间:2017-03-15 14:51:42

标签: json mime-types httpresponse content-type

我在两台不同的服务器上使用相同的应用程序。在一台服务器上,可以正确加载应用程序。在第二台服务器上,应用程序无法加载。错误消息是Unexpected token<在JSON的第0位。当我在浏览器中打开开发人员工具时,我看到第二台服务器上的响应内容类型标题是text / html,而第一台服务器上的响应内容类型标题是application / json应该是什么。 在IIS MIME服务器中的两个服务器上都是.json application / json。 还有什么可以阻止第二台服务器上的corect内容类型?

2 个答案:

答案 0 :(得分:1)

以下是可能的答案之一: 在我们的例子中,事实证明原因是IIS设置,实际上是应用程序池设置。我们没有使用Integrated,而是将其切换为Classic。 在IIS中使用经典应用程序池时,所有JSON媒体类型响应都自动转换为http / text。

将其切换回集成应用程序池解决了这个问题。 希望它对某人有帮助。 拉狄克

答案 1 :(得分:0)

不确定是否是由您面临的同一问题引起的,但是在我们的服务器上,我们不得不强制标头将其内容类型设置为json以处理类似的问题。

这就是我们添加的代码行:

header('Content-type:application/json;charset=utf-8');

  public function renderError($err){
   header('Content-type:application/json;charset=utf-8');
   echo json_encode(array(
       'success' => false,
       'err' => $err
   ));
}

希望可以有所帮助。 :)