为什么我不能使用AJAX发布JavaScript变量

时间:2018-07-18 08:34:18

标签: javascript php ajax

我正在尝试使用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;
}

?>

1 个答案:

答案 0 :(得分:2)

要记住的有关Ajax的最重要的事情之一是它不会导致浏览器导航到新页面

Ajax的全部要点是它发出一个HTTP请求,而不是使浏览器正常执行响应,而是使响应可用于JavaScript。


如果要显示对Ajax请求的响应,则必须编写将其显示的JavaScript。

它将在response变量中使用(success方法的第一个参数…,它必须是您传递给ajax()的对象的属性,而不是data对象……所以您的控制台中如何显示“确定”,我不知道)。

然后可以将其添加到文档中(作为简单示例,$(document.body).append(response))。


也就是说,如果要将其呈现为一个全新的文档,最好的方法是首先不要使用Ajax

创建一个包含数据的表单,将其附加到文档中,然后提交。