Laravel 5.8项目后端传值到JS后console.log无输出如何解决
问题原因
- Laravel默认的
{{ }}输出语法会自动转义HTML特殊字符,你输出json_encode($title)时,双引号会被转义为",直接导致JS代码语法错误,JSON.parse执行抛异常,后续console.log代码根本不会运行,所以控制台无输出。 - 写法冗余错误:
json_encode生成的本身就是合法的JS字面量,不需要额外包裹双引号,也不需要调用JSON.parse解析。
解决方案
直接替换视图中的JS代码即可:
<script> // 用 {!! !!} 语法输出不转义的JSON内容,直接赋值给JS变量 var title = {!! json_encode($title) !!}; // Laravel 5.5+ 还可以用更简洁的Blade指令:var title = @json($title); if(!title){ console.log(1); }else{ console.log(2); } </script>
内容的提问来源于stack exchange,提问作者Pouya Vaghefi
相关产品推荐
相关产品推荐

