将blob变量从php发送到javascript
我有一个php文件,它从sql数据库中获取一个音频blob。我需要用JavaScript将该blob发送到html页面 下面是我发送blob变量$ubr的PHP代码将blob变量从php发送到javascript,javascript,php,ajax,xml,blob,Javascript,Php,Ajax,Xml,Blob,我有一个php文件,它从sql数据库中获取一个音频blob。我需要用JavaScript将该blob发送到html页面 下面是我发送blob变量$ubr的PHP代码 echo json_encode(array('first'=>$ubr)); 下面是我的JavaScript,在这里我尝试接收blob var url = "testThis.php" var ajax = new XMLHttpRequest(); ajax.open("GET", url, true); //ajax
echo json_encode(array('first'=>$ubr));
下面是我的JavaScript,在这里我尝试接收blob
var url = "testThis.php"
var ajax = new XMLHttpRequest();
ajax.open("GET", url, true);
//ajax.send(null);
ajax.onreadystatechange = function () {
if (ajax.readyState == 4 && (ajax.status == 200)) {
var Data = JSON.parse(ajax.responseText);
var b64Data = Data.first;
}
}
我想这是因为我把它当作一个字符串,但是blob是二进制数据。除了我不知道还能做什么
我需要将php数据保持为一个数组。我需要同时发送一个blob和一个字符串值。对于AjaxXMLHttpRequest,服务器响应可以是
$data['blob']="blob_value";
return "<div id='blob'>".$data['blob']."</div><div id='string'>".$data['string']."</div>"; // returning HTML as response .
}
在您返回数组的情况下
PHP代码可以是:
$data['blob']="blob_value";
$data['name']="name_value";
// returning json data ==> {"blob": "blob_value","name": "name_value"}
return json_encode($data);
在JavaScript中:
ajax.onreadystatechange = function () {
if (ajax.readyState == 4 && (ajax.status == 200)) {
var data= ajax.response;
var arr= JSON.parse(data);
alert(arr.blob);
}
}
您需要发送的字符串值是多少?可能以二进制文件的形式发送音频,字符串信息存在于HTTP头中。不过,我需要返回一个数组,而不仅仅是一个字符串。您还说“您可以使用响应文本”来表示这两种类型,其中一种应该说responseXml吗?@Silz:您忘记了
xhr.response
,它基本上可以是任何类型的。即使是二进制的。@Bergi:非常感谢您的帮助:)@SolidCloudinc:已经更新了我的答案,您可以检查一下。@Silz我仍然得到未捕获的语法错误,var arr=JSON.parse(数据)上意外的标记d;
ajax.onreadystatechange = function () {
if (ajax.readyState == 4 && (ajax.status == 200)) {
var data= ajax.response;
var arr= JSON.parse(data);
alert(arr.blob);
}
}