我目前面临一个奇怪的问题,我无法缩小这个问题。
在我的Laravel应用程序中,我正在通过AJAX检索数据。因此,应用程序的某些部分会使用application/json
内容类型进行响应。
return Response::json(['message' => 'Some message']);
在我的本地网络服务器上一切正常。我得到Content-Type:application/json
作为回复。
我在服务器上部署了应用程序(也是apache )并对其进行了测试。但这是问题所在。我不再获得正确的内容类型了。相反,我得到text/html
。
所以有很多可能的问题来源,我对服务器配置并不太了解。但这是我已经尝试过的事情:
Set-Cookie
,其中包含:laravel_session=[...]
,而服务器上的响应则不包含:{/ li>
请不要发布建议检查内容类型的答案,并在必要时在客户端解析它,因为虽然这可能,但服务器不应该这样做,我正在尝试找出原因
答案 0 :(得分:1)
这听起来更像是服务器配置问题,特别是因为它在您的本地环境中工作正常,而不是在您的生产环境中。我知道您确保服务器具有json扩展名并且已启用,但您可能希望在生产服务器上仔细检查以下内容:
AddType application/json .json
指令(/etc/apache2/mods-available/mime.conf
)?mime
(可以通过a2enmod mime
完成?)答案 1 :(得分:0)
也许这个答案来得很晚但是昨天我遇到了这个问题,实际上有点解决了。我不知道为什么会发生这种情况,但我注意到每当我运行artisan serve
或任何其他工匠命令时,在所有命令消息之前都会出现一个奇怪的选项卡。所以打开我的所有控制器,发现在php
打开标签之前有一个标签。所以我有这样的事情:
<?
class MyController extends BaseController{
....
}
那个标签是偶然的,但似乎是造成了问题。我删除后,Content-Type
所有Response::json
次调用返回的application/json
返回{{1}}
希望这有助于即使为时已晚。