我有以下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/