我想將PHP變量傳遞給Javascript,而不觸發任何新的http請求(又名:直接插入標記)。但我想要的內容如(沒有任何可能改變我的價值的消毒,即使它們在標記本身)。當然,我也想保持安全。這會有什麼副作用嗎?
我已經想出了迄今爲止最好的方法包括JSON + BASE64_ENCODE +數據URI方案:
<script type="text/javascript" src="data:text/javascript;base64,<?php echo base64_encode('var thing = '.json_encode($thing)); ?>"></script>
我的問題是:將這個有什麼副作用?我可以安全地使用這個嗎?
有一件事情是它不會在IE 7和8中工作,甚至可能不是9。然後我真的不明白這個練習的重點?這實現了什麼,簡單地插入純文本JavaScript不? – 2012-02-25 21:48:04
我做了一些非常相似的事情(JSON/base64),在我的情況下,它是用一個URL參數發送複雜的數據客戶端 - >服務器。它運行良好。 – 2012-02-25 21:49:25
但是對於你的情況,如果你的JSON編碼字符串,你應該能夠直接將它放入標記中,它不需要編碼或轉義(JSON編碼實際上爲你逃脫任何字符串)。 – 2012-02-25 21:50:37