Codeigniter 4 enviroment make JSON .parse не работает - PullRequest
1 голос
/ 06 августа 2020

Я новичок в codeigniter 4 Я только что начал новый проект в Codeigniter 4, и у меня возникла ошибка при использовании JSON .parse, Unexpected token

Я получаю два разных результата при использовании разных сред:

По умолчанию // не вносил никаких изменений в конфигурацию 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

Кажется, что инструменты отладки останавливают загрузку, когда находят ошибку, но мне не удалось найти, что я делаю неправильно. Надеюсь, вы поможете мне с этим, и заранее спасибо.

EDIT Я использую библиотеки webix для запроса, но они возвращают строковый формат. Я попробовал вручную то, что вы предложили, но результат был тот же. Он работает, если используется CI4 в производственной среде, но не работает в режиме разработки.

//Solutions tried
response = JSON.parse({"status":0,"message":"Access denied"});//error
response = JSON.parse("{'status':0,'message':'Access denied'}");//error

1 Ответ

0 голосов
/ 06 августа 2020

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

// ответ должен быть таким {"status": 0, "message ":" Доступ запрещен "}

, а затем используйте вот так data = JSON .parse (response);

и проверьте свой тип данных во время публикации, и он должен быть json

...