流明5.7 JSON响应限制

时间:2018-11-29 16:48:13

标签: php json laravel lumen

我在数据库中存储了大量文本,可以毫无问题地从我的DBdd()log::debug()的内容中成功提取文本。可以在此处看到文本:https://pastebin.com/KQNYW623

当我尝试返回文本的JSON响应时出现问题。在api.php路由文件中的干净Lumen 5.7上,我具有以下路由:

$router->get('/', function () use ($router) { return json_encode("*insert large content here*"); //this is where the big text goes, I won't paste it fully here but it's here in my code as a string });

如果我访问此路由,则会得到空白页。绝对没有任何东西出现在我的屏幕上,邮递员或curl。错误日志中没有错误,什么也没有。只是空白。

如果我放置了比大文本小得多的其他内容(例如hello world),则输出响应没有问题。有人可以说明这个问题的根本原因是什么吗?在Lumen / Laravel中响应的字符数有限制吗?

---更新---

因此,如果我做echo response()->json($string)(其中$string是一个保存长文本的变量),我可以看到字符串已被编码为JSON并添加了响应标头,而所有这些都是在屏幕上输出。但是,执行return response()->json($string)仍会继续返回空白响应。

有人会知道为什么return不发送回response()的数据吗?

2 个答案:

答案 0 :(得分:0)

要使用laravel之类的内腔返回json响应,我想您可以看一下:

https://lumen.laravel.com/docs/5.7/responses

  

json方法将自动将Content-Type标头设置为application / json,并使用json_encode将给定的数组转换为JSON

此外,如果您有与数据库关联的模型,则可以将json自动转换为数组,请参见:

  

如果您的数据库具有包含序列化JSON的JSON或TEXT字段类型,则将数组强制类型转换添加到该属性将自动将该属性反序列化为PHP数组

https://laravel.com/docs/5.7/eloquent-mutators#array-and-json-casting

答案 1 :(得分:0)

解决了这个问题:我从这里获得的一个CORS中间件类:enter link description here

使用Content-Length> 6K的响应的长度为0,但仍返回200响应。感谢您对所有人的帮助和建议。