首页 > 解决方案 > 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

标签: javascriptphparraysjsoncodeigniter-4

解决方案


echo json_encode(array('status' => 0,'message'=>'Access denied'));

//响应应该是这样的 {"status":0,"message":"Access denied"}

然后像这样使用 data=JSON.parse(response);

并请在发布期间检查您的数据类型,它应该是 json


推荐阅读