使用此脚本
jQuery.ajax({
type: "GET",
url: "editold.php",
data: "call=generateCode",
success: function (response) {
alert("Succesful getting php file");
},
error: function (response) {
alert("Error getting php file");
}
});
在使用此代码的服务器端(php)上:
<?php
if($_SERVER['REQUEST_METHOD']=="GET") {
echo '<script type="text/javascript">' . 'alert(" ' . 'hey' . '");' . '</script>';
$function = $_GET['call'];
if(function_exists($function)) {
call_user_func($function);
}
else {
echo 'Function Not Exists!!';
}
}
function generateCode() {
echo '<script type="text/javascript">' . 'alert(" ' . 'hey' . '");' . '</script>';
}
?>
虽然我收到警报,说我的成功功能警报意味着文件 成功加载我似乎没有让最终的generatecode函数工作。(我没有得到第二个警报。)
我尝试过很多东西但似乎没什么用。
我该怎么做?..
答案 0 :(得分:2)
这应该这样做:
jQuery.ajax({
type: "GET",
url: "editold.php",
data: {call: "generateCode"}, // <-- This one is changed into an object
success: function (response) {
alert("Succesful getting php file");
$('body').append(response); // <-- Append the ajax response to the page body
},
error: function (response) {
alert("Error getting php file");
}
});
如果没有,请尝试在PHP文件中执行var_dump($_GET);
。
答案 1 :(得分:0)
1 - 在服务器端发送没有脚本标记的响应。
2 - 在客户端使用eval()函数来执行代码。
if($_SERVER['REQUEST_METHOD']=="GET") {
echo 'alert(" ' . 'hey' . '");';
$function = $_GET['call'];
if(function_exists($function)) {
call_user_func($function);
}
else {
echo 'Function Not Exists!!';
}
}
function generateCode() {
//your code
}
jQuery.ajax({
type: "GET",
url: "editold.php",
data: "call=generateCode",
success: function (response) {
alert("Succesful getting php file");
eval(response);
},
error: function (response) {
alert("Error getting php file");
}
});