我的Laravel应用程序的每个响应似乎都带有一个\n
字符,即使我返回的只是一个数字。
我觉得我必须把这个作为一个bug来介绍,但是我找不到我可能这样做的地方。我看到我在Laravel中构建的一些其他应用程序也有这个(但其他应用程序没有),所以在拔出我的头发之后,我想我应该检查一下,看看其他人是否经历过这个问题。
问题是我试图返回一个ID并使用它,但它有这个前导字符。我可以在客户端剥离它,但宁愿修复根本问题。
预计到达时间:这条路线:
Route::get('/test', function(){
return 'hello world';
});
生成此响应:
当然,这对于HTML来说不是问题,但是当我尝试将它指定为一个id时,我得到了“\n 234”。
6条答案
按热度按时间whhtz7ly1#
首先,这是一个糟糕的问题结束。
当你的任何文件从公共文件夹的index.php开始到抛出响应的控制器时,就会发生这种情况。任何地方如果有一个
<?php ?>
,中间有一个新行或
以
<?php
开头的路由请求和响应中涉及的任何文件都在第1行以外的任何其他行上检查您的
1.路径/web.php或路径/api.php
我觉得检查这些必须解决你的问题。如果没有评论下面让我们讨论!
q3aa05252#
我遇到了同样的问题,并修复了phpStorm的全局正则表达式搜索:
最后,我在
<?php
之前的index.php
中添加了一个新行,就像其他评论中提到的那样db2dz4w83#
我遇到了同样的问题,并在返回任何数据之前使用以下命令查看缓冲区中的内容
原来我有几个“\n”在(routes.php)或在路由文件的情况下,你使用多个文件
ef1yzkbh4#
如果您使用Laravel作为API,我建议使用JSON响应函数:
这将缓解前导换行符问题。
至于为什么您现在会遇到这种情况,这可能与您的请求头有关,在过去,我不得不在请求头中添加
'Accept' => 'application/json'
,以确保Laravel知道我总是想要回JSON。yfjy0ee75#
我也遇到过这种情况,最后我在public/index.php中发现文件末尾有一行测试代码,我忘记删除了。删除后一切都很好。但还是很奇怪,在我删除之前,多余的文字并没有在本地显示,而是只在live服务器上显示。
ekqde3dh6#
我也遇到过同样的问题,通过在控制器返回之前清除输出缓冲区来修复它。
我已经解决了这个问题,通过查看官方的php文档:https://www.php.net/manual/en/function.ob-get-clean.php
希望对你有帮助