javascript - Codeigniter 4 环境使 JSON.parse 失败
问题描述
我是 codeigniter 4 的新手 我刚刚在 Codeigniter 4 中开始了一个新项目,我在使用 JSON.parse 时遇到了错误, 在 JSON 中的位置 30 处出现意外令牌 <
我使用不同的环境得到了两种不同的结果:
默认// 未对 codeigniter 配置进行任何更改
- 代码运行得很好,虽然有一秒钟我设法在控制台中看到一个错误
- 坏事,在这种环境中,大多数调试工具都被停用了我想在工作时拥有的东西。
SetEnv CI_ENVIRONMENT production // 使来自CI4的调试工具出现,这一行在.htacess
- 代码在 JSON.parse 处停止并在控制台中得到之前描述的错误
所以这就是我的代码的结构:
//controller
echo json_encode(array('status' => 0,'message'=>'Access denied'));
//response rgets data from callback from a controller
console.log(response);//{status:0,message:'Access denied'}
data=JSON.parse(response); //error
//Other fixes i already tried
data=JSON.parse(JSON.stringify(response)); //Works fine, but returns a string, need an object
data=JSON.parse(JSON.parse(JSON.stringify(response))); //error
data=JSON.parse("{status:0,message:'Access denied'} "); //Even trying to use directly a JSON format throws error
data=JSON.parse({status:0,message:'Access denied'}) //error, without the comas
data=JSON.parse([{status:0,message:'Access denied'}]) //error
调试工具在发现错误时似乎会停止加载,但我还没有设法找到我做错了什么。希望你能帮助我,并提前感谢。
编辑我正在使用 webix 库进行请求,但它们返回字符串格式。我手动尝试了您的建议,但结果是一样的。如果在生产环境中使用 CI4,它可以工作,但在开发模式下失败。
//Solutions tried
response = JSON.parse({"status":0,"message":"Access denied"});//error
response = JSON.parse("{'status':0,'message':'Access denied'}");//error
解决方案
echo json_encode(array('status' => 0,'message'=>'Access denied'));
//响应应该是这样的 {"status":0,"message":"Access denied"}
然后像这样使用 data=JSON.parse(response);
并请在发布期间检查您的数据类型,它应该是 json
推荐阅读
- c# - 找到控制器 DisplayName 并显示它
- r - 如何使用 raster 包中的函数 crop(x, y, ...) 以便输出是关于 x (shapefile, extent object) 中包含的 y (raster) 的信息
- flutter - 如何在颤动中修复“net::ERR_CLEARTEXT_NOT_PERMITTED”
- javascript - 网页中的 Friconix 集成
- javascript - Firebase 电话身份验证在部署后不起作用
- python - 如何使用 python 连接到 CosmosDB Emulator 的表存储?
- javascript - 试图从机架空间云上的远程 URL 转换 base64
- azure - 创建资产过滤器抛出 400 Bad Request
- java - 使用 Redis 的分布式锁 (Redisson):锁定如何跨服务器实例工作?
- ruby-on-rails - Rails网站登录在生产中不起作用(Heroku)