window.location似乎取消了ajax post请求

时间:2015-09-12 21:54:49

标签: javascript php jquery ajax google-maps

我正在尝试使用ajax将数据发送到php并同时重定向到该php文件但是当我重定向到php文件时,ajax似乎没有发送数据。我想实现一些东西,其中点击一个按钮,并使用ajax将数据发送到php,同时重定向到该php文件,以通过显示它来查看发送的数据。我没有使用像window.location="ajaxtest.php?data=data"这样的东西的原因是因为我将在谷歌地图api中使用它,如果我点击一个地方的按钮,那么我将重定向到地图页面并根据ajax发送到php文件的id以及基于该id生成的坐标显示特定位置的标记。

ajaxtest.html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3
/jquery.min.js"></script>
<script>

    $(document).ready(function(){
        $("#button").click(function(){
            var data = "test";
            $.post("ajaxtest.php",{
                 data: data
            },function(data, status){
                 window.location="ajaxtest.php";
            });
        });
    });

</script>

<button id="button">test</button>
</body>
</html>

ajaxtest.php

<?php  

if(isset($_POST['data'])){
    echo $_POST['data'];
}

?>

2 个答案:

答案 0 :(得分:0)

所以,这不是HTTP,AJAX或PHP的工作方式。当您进行重定向时,没有任何POST数据,因为重定向是来自AJAX帖子的单独请求。你想要的是做一个AJAX帖子并以某种方式消耗你页面上的响应,而根本不进行重定向。

答案 1 :(得分:0)

似乎ajax似乎不是这里的方式。如果您想重定向到其他页面,请执行window.location.href = 'ajaxtest.php?id='+locationId;和ajaxtest.php:

<?php
$id = isset($_GET['id']) ? (int) $_GET['id'] : null;

if ( ! $id) {
    die('ID missing');
}

// Show marker 
?>