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