如何执行ajax响应返回的javascript函数
how to execute a javascript function returned from ajax response
我有一个函数,当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');
}
});
相关文章:
- 调用Ajax并返回响应
- 可以链接 '.then() 的返回响应,顺序与 '.then()' 的顺序不同
- 节点.js和表达式:如何在异步操作后返回响应
- 嵌入 iframe 不会返回响应式设计
- 将数据从js发送到servlet并返回响应
- nodejs或expressjs在没有返回响应的情况下重复调用路由
- 回调返回响应,但当在API中发送时,响应在节点JS中显示为空白
- 挂起的回调:在每次回调返回之前返回响应
- AngularJS web服务是否应返回响应的深层副本
- 从PHP执行一个javascript函数并返回响应
- 在检查响应时在http之前返回响应
- 节点.js请求对象 - 返回响应正文以供进一步操作
- JavaScript/angular - 无法获取确切的返回响应数据
- 如何从 angularjs 服务中的异步调用返回响应
- 如何将返回响应的预定义 JavaScript 回调作为参数传递到函数中
- 为什么我的 XHR 调用等待对方返回响应
- XMLHttpRequest()在函数中返回响应
- Ajax请求在js检查后返回响应
- 执行javascript并返回响应(JavaFX/Swing)
- 在数组中填充$http/rest请求未返回响应的日期