javascript - 成功发布后无法访问 $_POST 数据

标签 javascript php jquery html ajax

我有以下Ajax 请求:

function send(){
//selected Pictures: some int array
var jsonArray = JSON.stringify(selectedPictures);

var request;
request = $.ajax({
url: "targetPage.php",
type: "POST",
data: {data: jsonArray},
cache: false
});}

我通过提交

href="targetPage.php" onclick="send();"

我想访问 HTML 文件或 PHP 脚本中的数组并将其包含在 HTML 中。 当我使用浏览器的开发工具检查 HTTP 流量时,我发现 POST 实际上工作正常并且发送了正确的数组数据,但是当我想访问数据时:

if(isset($_POST['data'])){
  $data = json_decode(stripslashes($_POST['data']));
}

没有任何反应,因为 isset 返回 false。我似乎缺少某种运行时或执行顺序问题。

最佳答案

问题在于您的 href,它使您的浏览器导航到该页面而不发送信息,因此您必须将其删除;因为您正在通过 ajax 调用进行调用。

所以:

<a href="#" onclick="send();"></a>

如果您希望页面在调用后重定向,您应该将 success 函数添加到 ajax 调用中:

function send(){
    //selected Pictures: some int array
    var jsonArray = JSON.stringify(selectedPictures);

    var request;
    request = $.ajax({
        url: "targetPage.php",
        type: "POST",
        data: {data: jsonArray},
        cache: false,
        success: function() { location.href = "targetPage.php"; }
     });
}

关于javascript - 成功发布后无法访问 $_POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24917896/

相关文章:

php - 从 my_table 中选择 avg(unit_cost),其中运行总和(数量)< '$someNumber'

javascript - 使用 fabric.js 删除之前添加的 Canvas 文本

jQuery 性能、.css 或 addClass

javascript - 使用条件时不显示 React 组件

javascript - jquery 中的 ImgAreaSelect

javascript - 如何在jquery中添加多个输入文本值

javascript - 检查是否至少有一行被填满

javascript - 如何在移动设备或小窗口上隐藏 HTML 中的元素?

javascript - JQuery UI - 如何从列表框进行多个切换?

php - 用于 php 应用程序测试的最佳测试应用程序