我正在尝试使用AJAX post方法将JavaScript变量传递给PHP文件。我的控制台返回:'ok'
,但是如果我输入file.php
,则仅显示白页。为什么?
$(".btn_ranking").click(function(e) {
e.preventDefault();
var name = localStorage.getItem('name');
var time = localStorage.getItem('timer_end');
$.ajax({
url: 'php/file.php',
method: 'post',
data: {
name: name,
time: time,
success: function(response) {
console.log('ok');
}
}
});
});
<?php
if (isset($_POST['name'])) {
$name = $_POST['name'];
echo $name;
}
?>
答案 0 :(得分:2)
要记住的有关Ajax的最重要的事情之一是它不会导致浏览器导航到新页面。
Ajax的全部要点是它发出一个HTTP请求,而不是使浏览器正常执行响应,而是使响应可用于JavaScript。
如果要显示对Ajax请求的响应,则必须编写将其显示的JavaScript。
它将在response
变量中使用(success
方法的第一个参数…,它必须是您传递给ajax()
的对象的属性,而不是data
对象……所以您的控制台中如何显示“确定”,我不知道)。
然后可以将其添加到文档中(作为简单示例,$(document.body).append(response)
)。
也就是说,如果要将其呈现为一个全新的文档,最好的方法是首先不要使用Ajax 。
创建一个包含数据的表单,将其附加到文档中,然后提交。