Rumah > hujung hadapan web > tutorial js > Bagaimana untuk Menyelesaikan SyntaxError JavaScript Apabila Menghuraikan Data JSON yang Dihasilkan Jinja?

Bagaimana untuk Menyelesaikan SyntaxError JavaScript Apabila Menghuraikan Data JSON yang Dihasilkan Jinja?

Susan Sarandon
Lepaskan: 2024-12-09 19:22:11
asal
642 orang telah melayarinya

How to Resolve JavaScript's SyntaxError When Parsing Jinja-Rendered JSON Data?

JavaScript Meningkatkan SyntaxError dengan Data Diberikan dalam Templat Jinja

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

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.

Penyelesaian: Menggunakan Penapis tojson

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)
Salin selepas log masuk
Salin selepas log masuk
var tree = {{ tree|tojson }};
Salin selepas log masuk

Penyelesaian Alternatif

Menggunakan Penapis selamat:

Jika tidak memaparkan JSON, penapis selamat boleh digunakan untuk menghalang Jinja daripada melarikan data.

Contoh:

var tree = {{ tree|safe }};
Salin selepas log masuk

Menggunakan Markup:

Data juga boleh dibungkus dalam Markup sebelum dipaparkan, yang setara dengan menggunakan peti keselamatan penapis.

Contoh:

var tree = {{ tree }};
Salin selepas log masuk

Menyalurkan Data kepada Jinja Daripada JavaScript

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)
Salin selepas log masuk
Salin selepas log masuk
{% for item in tree %}
    <li>{{ item }}</li>
{% endfor %}
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan