[英]ajax returning php/javascript code
我在玩AJAX。
如果我做
echo "helllo"
在PHP文件中可以正常工作。
但是,如果我做類似的事情
echo "<script language=Javascript> alert('hi');</script>";
在PHP文件中,不會彈出alert()
。
有人知道我做錯了什么嗎?
例:
在我的html文件中,我有這個
<div id='something'> </div>
而且我想將來自php文件的響應文本放在上方:
if (req.status==200) {
document.getElementById('something').innerHTML=req.responseText;
}
如果我將其更改為:
if (req.status==200) {
document.getElementById('something').innerHTML="<?php echo 'hi';?>";
}
它工作正常,響應文本為---> hi
但是,如果我確實echo "\\"<?php echo 'hi';?>\\"";
在我的php文件中,響應文本為“”
我希望我能清楚地解釋
使用$ .load() ,腳本將被評估。
$("#something").load("request.php");
也許jQuery那里也使用eval(),所以它並不安全,但是只要load()僅在同一個Domain上工作,您就應該可以控制將要評估的事物。
但是,它更易於使用,因為您不必自己為腳本解析Fragment :)
另一種方法:使用eval
var result = ajaxResponseText;// "alert('hi')"; in your case
eval(result);
您必須使用返回的數據創建腳本標簽;
var script = document.createElement('script');
stript.innerHTML = req.responseText;
document.getElementsByTagName('head')[0].appendChild(script);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.