gpt4 book ai didi

php - AJAX POST 返回数据未出现

转载 作者:行者123 更新时间:2023-11-28 20:21:34 26 4
gpt4 key购买 nike

我有一个在表单提交上运行的 AJAX 调用(阻止默认停止标准提交):

var form = $(this);
$.ajax({
type: form.attr('method'),
url: form.attr('action'),
data: form.serialize()
}).done(function(data) {
$('#processingFile').hide();
$('#downloadFile').show();

$('#shareURL').val(data.url);
$('#downloadFile').attr('href', data.url);
$('#aboutFile').html('<b>File URL:</b> ' + data.url + '<br /><b>File Size:</b> ' + data.size + '<br /><b>Time Stamp:</b> ' + data.timestamp + '<br /><b>Client IP:</b> ' + data.ip);
}).fail(function() {
$('#saveFile').hide();
$('#error').show();
});

它提交的文件是一个PHP文件,如下:

// VARIABLES
$fileURL = $_POST['fileURL'];
$tmpURL = substr(md5(rand()), 0, 7);
$deleteCode = md5($tmpURL);

// COOKIE
setcookie($tmpURL, $deleteCode, time()+86400);

// SAVE FILE
if($fileURL){
file_put_contents("tmp/" . $tmpFile, file_get_contents("http://" . $fileURL));
}

// OUTPUT
$result = array(
'url' => "tmp/" . $tmpFile,
'size' => filesize("tmp/" . $tmpFile) * .0009765625 * .0009765625,
'timestamp' => date('H:i:s d-m-Y'),
'ip' => $_SERVER['REMOTE_ADDR']
);

echo json_encode($result);

当脚本在 jQuery 中使用 data.x 的任何地方运行时,返回未定义。知道为什么会发生这种情况以及如何解决它吗?

最佳答案

data 是一个包含返回的 JSON 文本的字符串;它不是一个对象。

要解析 JSON 对象,您有几个选项:

  • 自己调用 JSON.parse()

  • 传递 dataType: "json" 告诉 jQuery AJAX 为您解析它。

  • 在服务器响应中设置 Content-Type: application/json 以便 jQuery 知道为您解析它。

关于php - AJAX POST 返回数据未出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18212380/

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