我正在研究Ajax并且仍在学习正确使用它。我想知道为什么在Ajax alert()的一边;但是在另一边工作 - 没有。
这是非常基本的代码:
$('.naudoti_papildus_visiems').click(function() {
var n;
$.post('/ajax/naudoti_papildus_visiems.php', { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;
$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',
type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}
}, 'json');
});
“naudoti_papildus_visiems.php”内容:
<script>alert(9);</script>
我测试了一件事:使用alert();在Ajax中运行,它可以工作:
$('.naudoti_papildus_visiems').click(function() {
var n;
$.post('/ajax/naudoti_papildus_visiems.php', { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;
alert(9); // works
$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',
type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}
}, 'json');
});
Chrome控制台不会显示任何错误。任何帮助将不胜感激。
loelsonk:
仍无效。我做错了吗?
$('.naudoti_papildus_visiems').click(function() {
var n;
$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
dataType : 'json',
data: { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
success: function(data) {
var typeclick = data.typeclick,
typeu = data.typeu,
stil = data.stil,
stildell = data.stildell;
$.noty.closeAll();
if (n) {
n.setText('<b>' + data.message + '</b>');
n.setType(typeu);
} else {
n = noty({
text: '<b>' + data.message + '</b>',
type: typeu,
dismissQueue: false,
layout: 'top',
theme: 'defaultTheme',
timeout: 3000,
});
}
$('#data').html(data);
}
});
});
答案 0 :(得分:1)
如果您想执行js代码,请在申请回复中提及<script>alert(9);</script>
,将其附加到#temp
容器。
首先创建#temp
容器,我们追加响应:
<div id="temp"></div>
我们使用$.post
而不是$.ajax
。
$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
data: { status : 1, fermos_id : '<?php echo $id_kurat; ?>', gyvulio_tipas : '<?php echo $type_zagon; ?>' },
success: function(response) {
// Do whatever you want here
// response contains js code to be executed
// Now your code gets executed
$('#temp').html(response);
}
})
修改强>
这是一个小工作示例,向您展示它是如何工作的:
我们有两个文件:
文件1: index.php
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>title</title>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<style>
body {
padding-left: 250px;
}
#temp {
border: 2px solid #000;
padding: 20px;
width: 300px;
min-height: 200px;
}
</style>
</head>
<body>
<div>
<h1>Ajax</h1>
<button id="button" type="button">Perform ajax</button>
<div id="temp"></div>
</div>
<script>
$('#button').click(function(e) {
$.ajax({
url: '/ajax/naudoti_papildus_visiems.php',
type: 'POST',
data: { status : 1, fermos_id : 888, gyvulio_tipas : 'some_type' },
success: function(response) {
// Do whatever you want here
// response contains js code to be executed
// Now your code gets executed
$('#temp').html(response);
}
});
});
</script>
</body>
</html>
文件2: /ajax/naudoti_papildus_visiems.php (文件位于ajax
dir内)
<?php
echo 'test';
echo '<script>alert(9);</script>';
了解它的工作原理: