Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript location似乎取消了ajax post请求_Javascript_Php_Jquery_Ajax_Google Maps - Fatal编程技术网

Javascript location似乎取消了ajax post请求

Javascript location似乎取消了ajax post请求,javascript,php,jquery,ajax,google-maps,Javascript,Php,Jquery,Ajax,Google Maps,我试图用ajax将数据发送到php,同时重定向到该php文件,但当我重定向到php文件时,ajax似乎没有发送数据。我想实现这样一个功能:单击一个按钮,使用ajax将数据发送到php,同时重定向到该php文件,通过显示它来查看发送的数据。我之所以没有使用类似于window.location=“ajaxtest.php?data=data”的东西,是因为我将在谷歌地图api中使用它,如果我单击某个地方的按钮,然后我将重定向到maps页面,并根据ajax发送到php文件的id和基于该id生成的坐标显

我试图用ajax将数据发送到php,同时重定向到该php文件,但当我重定向到php文件时,ajax似乎没有发送数据。我想实现这样一个功能:单击一个按钮,使用ajax将数据发送到php,同时重定向到该php文件,通过显示它来查看发送的数据。我之所以没有使用类似于
window.location=“ajaxtest.php?data=data”
的东西,是因为我将在谷歌地图api中使用它,如果我单击某个地方的按钮,然后我将重定向到maps页面,并根据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>

文件
$(文档).ready(函数(){
$(“#按钮”)。单击(函数(){
var data=“测试”;
$.post(“ajaxtest.php”{
数据:数据
},功能(数据、状态){
window.location=“ajaxtest.php”;
});
});
});
测试
ajaxtest.php

<?php  

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

?>


所以,HTTP、AJAX或PHP不是这样工作的。重定向时没有任何POST数据,因为重定向是来自AJAX POST的单独请求。你想要做的是做一篇AJAX文章,然后以某种方式使用页面上的响应,而不做任何重定向。

这里似乎不是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 
?>


向ajax文件发送数据和重新定位到此文件是两个不同的请求,一个对另一个一无所知。这不起作用,因为“在两个不同的选项卡上打开同一页”ajax请求和window.location是两个不同的事件,它们之间没有任何关系。您不能这样做,因为ajax请求只有在选项卡/窗口打开并且位于发送它们的页面上时才有效。您可以在重定向之前等待AJAX请求成功完成,也可以通过普通表单提交发送数据?有可能实现我想要的吗?是的,你可以调用多个函数onclick,但AJAX中的“A”表示“异步”,你不知道AJAX请求何时完成。我没有否决,但他/她可能希望有一个示例。我感谢所有的答案,希望你们有一个愉快的一天。谢谢