我有以下ajax功能:
reader.onload = function(event){
var fd = new FormData();
var Name = encodeURIComponent('audio_recording_' + new Date().getMinutes() + '.wav');
console.log("name = " + Name);
fd.append('fname', Name);
fd.append('data', event.target.result);
$.ajax({
type: 'POST',
url: 'upload.php',
data: fd,
processData: false,
contentType: false,
success: function(data){
//console.log(data);
$.ajax({
type: 'POST',
url: 'readFile.php',
data: {"fileName":fileName},
success: function(data){
console.log(data);
}
});
}
});
};
第一个问题:我想从第二个成功函数中检索数据,以便稍后在代码中使用它。这可能会发生吗?
第二个问题:数据是一个音频文件。是否有一种获取音频数据的特殊方式,或者我们可以像任何数据一样获得它?在我的第二个ajax的php服务器端,我我正在读一个音频文件,想要使用它的数据。我做了简单的文件打开并获取了适用于音频文件的内容。
服务器端代码:
<?php
$fileName=$_POST["fileName"];
$dh = opendir('upload/');
$contents = file_get_contents('C:/wamp/www/JSSoundRecorder/upload/'.$fileName);
// echo $contents;
echo $fileName;
答案 0 :(得分:0)
这通常是一种不好的做法,但您可以做的是在开始时指定一个全局变量,然后在成功中为该变量分配数据。这个问题是,在您需要使用之前,您无法确定ajax是否已完成并且您的变量已设置。
var mySuccessVar = null;
...
success: function(data) {
mySuccessVar = data;
}
... // later in the code:
if (mySuccessVar != null) {
yourFunction(mySuccessVar);
}