我使用使用PHP和slim框架的私有API。当我得到一个给我图像数据的路线时,响应似乎很奇怪(如字符集问题)。
服务器使用 readfile() php 函数发送图像:
$src = "image.png";
$this->app->contentType("image/png");
$this->app->response()->status(REQ_OK);
header('Content-length: '.filesize(SITE_PATH.$src));
readfile(SITE_PATH.$src);
在客户端,我将AngularJS与$http一起使用。
$http({
method: 'GET',
url: "/myRoute",
headers: {
'responseType': "image/png"
}
)
.success(function(result){
//treatment
})
.error(function(){
});
在 chrome 上,在 xhr 预览中,我得到了这个:![在此输入图像描述][1]
请参阅此处的屏幕截图:https://i.stack.imgur.com/G5Cna.png
如果我将数据发送到 img 的 ng-src,它不起作用。因为奇怪的编码。
你知道吗?
谢谢
问题是您正在尝试将二进制图像插入HTML源代码中,这是不可能的。
您需要形成一个 IMG 数据 URL(例如,请参阅此问题的示例:AngularJS - 将字节数组内容显示为图像)
或者您需要让浏览器为您执行 img 加载。这意味着创建一个<img ng-src="{{imgPath}}" />
,其中imgPath
引用具有内容/myRoute
的变量。