gpt4 book ai didi

javascript - 将 blob 变量从 php 发送到 javascript

转载 作者:行者123 更新时间:2023-12-03 12:28:11 24 4
gpt4 key购买 nike

我有一个 php 文件,它从 sql 数据库获取音频 blob。我需要使用 JavaScript 将该 blob 发送到 html 页面。

下面是我的 PHP 代码,我在其中发送 blob 变量 $ubr。

echo json_encode(array('first'=>$ubr));

下面是我尝试接收 blob 的 JavaScript。

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,服务器响应可以是

  1. responseText - 当您返回 html 或任何字符串作为响应时。
  2. responseXML - 当您返回 XML 作为响应时。
  3. 响应 - 当您以数组缓冲区、Blob、文档、JavaScript 对象(对于“json”)或字符串形式返回响应时。如果请求未完成或未成功,则该值为 null。

如果您返回 HTML 作为响应 例如PHP代码:

    $data['blob']="blob_value";

return "<div id='blob'>".$data['blob']."</div><div id='string'>".$data['string']."</div>"; // returning HTML as response .

然后你可以使用responseText

 ajax.onreadystatechange = function () {

if (ajax.readyState == 4 && (ajax.status == 200)) {

document.getElementById("target").innerHTML =(ajax.responseText);

}

}

在您返回数组的情况下

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);

}
}

关于javascript - 将 blob 变量从 php 发送到 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24073940/

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