Javascript 从字节数组加载图像内容

Javascript 从字节数组加载图像内容,javascript,extjs5,Javascript,Extjs5,我有一个REST服务可以重新运行byte[] 我喜欢创建一个图像(Ext.Img),其中的内容是服务结果 服务 @RequestMapping(value = "/retrieve_thumbnail", method = RequestMethod.GET) public byte[] retrieveBDocumentThumbnail(@RequestParam String modelName,@RequestParam String modelVersion) throws BdocW

我有一个REST服务可以重新运行
byte[]
我喜欢创建一个图像(
Ext.Img
),其中的内容是服务结果

服务

@RequestMapping(value = "/retrieve_thumbnail", method = RequestMethod.GET)
public byte[] retrieveBDocumentThumbnail(@RequestParam String modelName,@RequestParam String modelVersion) throws BdocWebAccessException {
    return service.retrieveBDocumentThumbnail(modelName, modelVersion);
}
形象

 Ext.create("Ext.Img", {
     src:'tablet/bDocument/retrieve_thumbnail?modelName=MODELE_INT_003_TYPES_DONNEES&modelVersion'
})
服务已被调用,但javascript控制台中有以下消息:

资源被解释为图像,但使用MIME类型text/plain:“”传输


我认为问题与格式有关,如何解决这个问题?

MIME类型是一个HTTP头,它指示文件的类型。在这种情况下,它发送文本/纯文本。它应该表明这是一个图像。我认为您的问题不在客户端,但客户端正在响应服务器端的无效响应

 @RequestMapping(value = "/retrieve_thumbnail", method = RequestMethod.GET, 
        produces = MediaType.IMAGE_PNG_VALUE)

我试过了,但是,我得到了相同的信息:资源被解释为图像,但使用MIME类型text/plain传输。问题是您的MIME类型。您可以检查javascript控制台上的网络面板吗?您应该看到请求。在headers部分下,您应该看到mime类型。如果它仍然是text/plain,那么这仍然是您的问题。是的,类型仍然是:text/plain,我有一些代码可以完全执行您试图执行的操作。使用
更改请求映射会产生对我有用的
标志。如果这对您不起作用,那么您可能有问题。如果我将
@RestController
放在Spring控制器中,我将在控制台“资源解释为图像,但使用MIME类型text/plain传输”中出现此错误,如果我将
@controller
,我将出现异常“java.lang.IllegalArgumentException:未知返回值类型[[B]”–“请参见,共识是“不,他们不应该”!