我看到我不是唯一一个遇到这种问题的人,但我找不到解决办法。
所以问题来自一个比这复杂得多的应用程序,但试图解决这个问题,我意识到即使是一个简单的#Ajax" 2或3个文件之间的请求会返回我" undefined"。
以下是我的文件:
的index.php
<body>
<button>Button</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="./main.js"></script>
</body>
main.js
$(document).ready(function()
{
$('button').click(function(){
$.post('test.php', function(data, status){
console.log('data: ' + data, status);
});
});
});
test.php的
<?php
echo "lorem ipsum";
?>
当我点击按钮时,Ajax请求会在控制台中返回:
data: undefined success
当我的文件是index.php文件时,它总是返回&#34; undefined&#34;无论上下文(当然如果没有Javascript错误)。 但通过多次测试,我意识到使用相同内容的不同结果,但使用其他文件扩展名,返回值并不总是相同,例如:
index.html而不是index.php,相同的main.js和相同的test.php
data: success
index.html而不是index.php,如果我调用一个包含例如&#34; lorem ipsum&#34;的test.txt文件。它返回:
data: lorem ipsum success
这是我的问题,请提前感谢您的答案。
答案 0 :(得分:0)
好吧,我认为你必须发送json而不是像这样的回声:
return json_encode('lorem ipsum');
尝试这个我希望它有所帮助。
答案 1 :(得分:0)
将此代码放入test.php文件
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title>Demo</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<button>Button</button>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
$('button').click(function(){
$.post('abc.php', function(data, status){
console.log('data: ' + data, status);
});
});
});
</script>
</body>
</html>
你的abc.php文件中的
只是放了这个并检查并将test.php和abc.php放在同一个文件夹中,或者如果abc.php在另一个位置,只需更改$ .post中的abc.php的URL
<?php echo "hello"; ?>
答案 2 :(得分:0)
这里试试这个:
$(document).ready(function() {
$("#button").click(function() {
$.ajax({
url: "test.php",
success: function(result) {
$("#div").html(result);
}
});
});
});
然后是php代码:
$array = array("" => "lorem", "" => " ipsum");
echo json_encoded($array);
答案 3 :(得分:0)
我发现问题,它来自我的工作环境,我使用了这个插件https://github.com/JosephLenton/PHP-Error并禁用它一切正常工作^^'
现在我必须弄清楚如何在制作Ajax请求xD
时保持激活状态谢谢大家的帮助,抱歉浪费你的时间。 :/