Apabila cuba menghantar data sebagai JSON daripada laluan Flask ke templat Jinja dan mengulanginya menggunakan JavaScript, satu mungkin menghadapi "SyntaxError: Token '&' tidak dijangka." Ralat ini timbul apabila JSON.parse dipanggil pada data yang diberikan.
Isu ini berpunca daripada persekitaran Jinja Flask, yang secara automatik melepaskan data yang diberikan dalam templat HTML sebagai langkah keselamatan. Apabila cuba menggunakan data yang terlepas ini sebagai JSON dalam JavaScript, ralat sintaks berlaku.
Untuk menyelesaikan isu ini, Flask menyediakan penapis tojson. Penapis ini secara automatik membuang data Python ke JSON dan menandakannya selamat untuk dipaparkan dalam JavaScript.
Contoh:
return render_template("tree.html", tree=tree)
var tree = {{ tree|tojson }};
Menggunakan Penapis selamat:
Jika tidak memaparkan JSON, penapis selamat boleh digunakan untuk menghalang Jinja daripada melarikan data.
Contoh:
var tree = {{ tree|safe }};
Menggunakan Markup:
Data juga boleh dibungkus dalam Markup sebelum dipaparkan, yang setara dengan menggunakan peti keselamatan penapis.
Contoh:
var tree = {{ tree }};
Jika data tersebut tidak bertujuan untuk penggunaan JavaScript tetapi untuk Jinja , penapis tojson tidak diperlukan. Lulus data Python terus dan gunakannya sebagai data lain dalam templat.
Contoh:
return render_template("tree.html", tree=tree)
{% for item in tree %} <li>{{ item }}</li> {% endfor %}
Atas ialah kandungan terperinci Bagaimana untuk Menyelesaikan SyntaxError JavaScript Apabila Menghuraikan Data JSON yang Dihasilkan Jinja?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!