gpt4 book ai didi

javascript - Ajax PHP 返回空文件

转载 作者:行者123 更新时间:2023-12-03 09:56:35 25 4
gpt4 key购买 nike

我有一个 JSON 字符串,在触发按钮时通过 Ajax 调用传递。我希望能够做和理解的第一件事是将变量传递回生成的文件中,而不将其保存到服务器。

这里发生的奇怪的事情是,变量值由回调函数检索并由alert(data)调用显示,而 POST 变量被识别为空,并且 JS 脚本将我带到一个空白的 process-data.php 页面。

当取消empty()条件时,我仍然可以正确显示变量但我没有得到空白页面,而是下载了 0 个八位字节的文件。

这可能是服务器问题吗?我正在运行 MAMP?

感谢您的回答。

这是 HTML 代码

<button onclick="aCall()" button type="submit" formmethod="post"> DL "x" value as text </button>

Ajax 代码:

function aCall(){
$.ajax({
url: 'process-data.php',
type: 'POST',
data: {'value': [{x:250,y:300}]}, //that's an example
success: function(data){
alert(data);
window.location = 'process-data.php';
}
});
}

这是 PHP 代码:

<?php
if (!empty($_POST['value'])) //I get a blank page with that condition on and a file if off.
{
$filename = 'test.txt';

header("Content-Description: File Transfer");
header("Content-Length: ". filesize("$filename").";");
header("Content-Disposition: attachment; filename=$filename");
header("Content-Type: application/octet-stream; ");
header("Content-Transfer-Encoding: binary");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Expires: 0');
header('Pragma: public');

echo $_POST['value'][0]['x'];
exit;

}
?>

简而言之,这就是我得到的。

HTML -> AJAX -> PHP -> echo myValue
|
|
empty file <----------|
or Blank page |
|
popup |
showing the <---------'
variable's
value

最佳答案

这样修改,不需要json_decode

来自

if (!empty(json_decode($_POST['value']))) 

if(isset($_POST['value']) && !empty($_POST['value']))

来自

echo $json[0]->x;

echo $_POST['value'][0]['x'];

关于javascript - Ajax PHP 返回空文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722790/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com