簡體   English   中英

ajax返回php / javascript代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM