我对responseText
的修改xmlhttprequest
有疑问。
index.html
向xmlhttprequest(req)
发送b.php
,(index.html
和b.php
两个位置都位于“测试”文件夹中)
b.php
回声二进制(video/mp4
)数据。
$url="/stream/stream.m4s";
$data=file_get_contents($url);
header('Content-type: video/mp4');
header('Content-Length: '.strlen($data));
header('Content-Transfer-Encoding: binary');
echo $data;
我在req.responseText
打印index.html
,
我得到responseText="/Tests/b.php?url=/stream/stream.m4s"
。
在responseText
完成生成响应后,如何修改b.php
内容。 (不要修改index.html
或b.php
)
示例:响应写为"/abc/Tests/b.php?url=/stream/stream.m4s"
请给我一些建议,谢谢。
我简化了我的问题:如何在php完成生成响应后附加/修改响应内容。 b.php回显诸如“abc”之类的字符串。在发送到浏览器之前,通过apache(或其他)将响应字符串附加/修改为“123abc”。浏览器(req.responseText)将获得“123abc”stirg。怎么做?谢谢!
答案 0 :(得分:0)
会建议另一种方法:
<?php
// open the file in a binary mode
$url="./stream/stream.m4s";
$fp = fopen($url, 'rb');
// send the right headers
header("Content-Type: video/mp4");
header("Content-Length: " . filesize($url));
// dump the file and stop the script
fpassthru($fp);
exit;
?>
此外,当您进行AJAX调用时,您需要在操作之前等待success
或done
,以便您知道您已将内容传回并在DOM中呈现。由于视频文件较大,因此在将数据传递回AJAX请求之前,您可能会开始处理其他代码。
需要更多帮助?发布更多代码。