我有一个函数,当ajax成功请求时,我想执行它,但它没有在这里执行我的jquery部分
$.ajax({
type: "POST",
url: "https://www.example.com/create_chat.php",
data: dataString,
beforeSend: function()
{
$("#loading_indicator").show();
},
success: function(response)
{
$(".example").html(response);
}
});
这是来自php文件的响应
<script>start_chat(); alert("testing");</script>
我试着添加这个
$(".example").find("script").each(function(i) {
eval($(this).text());
});
但是什么都不起作用
create_chat的响应可以指示将使用哪个函数。例如
$.ajax({
type: "POST",
url: "https://www.example.com/create_chat.php",
data: {
dataString: dataString
},
beforeSend: function()
{
$("#loading_indicator").show();
},
success: function(response) // response could be 1,2,3,4.. etc
{
if(response==1) {
start_chat();
}
if(response==2) {
stop_chat();
}
if(response==3) {
change_chat_room();
}
...
$(".example").html(response);
}
});
虽然有解决方案,但您永远不应该直接执行Ajax调用的响应。
"生成的文档树中的脚本将不会执行,将不会加载引用的资源,也不会加载任何关联的XSLT应用"
http://www.w3.org/TR/XMLHttpRequest/#document-响应实体主体
最佳实践是使用数据进行响应,通常采用JSON、JSONP或HTML的形式。
试试这个,
$.ajax({
type: "POST",
data: {
'dataString': dataString
},
url: 'https://www.example.com/create_chat.php',
success: function(data) {
start_chat();
alert('Success');
},
error: function(data) {
alert('failed');
}
});