【发布时间】:2016-04-17 20:46:00
【问题描述】:
在我的项目中,有一个 URL 通常会响应带有 Content-Type:image/png 的图像,该图像由 Java 使用用户数据动态绘制。
但有时由于某些原因,用户不应该看到图像或无法使用用户数据绘制图像。在这种情况下,服务器将响应包含错误信息的 JSON 结果Content-Type:application/json; charset=utf-8
这是否可以在服务器响应Content-Type:image/png 时显示图像,否则在服务器响应Content-Type:application/json; charset=utf-8 时警告错误信息?
我可以处理任何一种响应内容类型,但在一个请求中处理两种内容类型时遇到了困难。这可能吗?
编辑
我尝试使用 AJAX 之类的
<img id="preview-img"/>
$.ajax({
url: "/preview",
type: "GET",
dataType: "JSON",
success: function(data) {
if (!data.success) {
alert(data.msg);
}
},
error: function() {
alert("occur error");
}
});
使用上面的代码,alert(data.msg) 在服务器响应带有错误消息的 JSON 结果时可用,但当服务器响应正确的图像时会触发alert("occur error")。
然后我重试了 remove dataType:
$.ajax({
url: "/preview",
type: "GET",
success: function(data) {
if (!data.success) {
alert(data.msg);
}
},
error: function() {
alert("occur error");
}
});
很高兴看到success 函数被触发,无论是服务器响应图像还是 JSON
但我不知道如何使用看起来像
ÿØÿàJFIFÿÛC
$.' ",#(7),01444'9=82<.342ÿÛC
2!!22222222222222222222222222222222222222222222222222ÿÀ%a"ÿÄ
ÿĵ}!1AQa"q2¡#B±ÁRÑð$3br
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚáâãäåæçèéêñòóôõö÷øùúÿÄ
ÿĵw!1AQaq"2B¡±Á #3RðbrÑ
$4á%ñ&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz¢£¤¥¦§¨©ª²³´µ¶·¸¹ºÂÃÄÅÆÇÈÉÊÒÓÔÕÖרÙÚâãäåæçèéêòóôõö÷øùúÿÚ?÷ú(¢
......
一堆垃圾。
现在我暂时不处理 JSON 结果
<img id="preview-img"/>
var image = new Image();
image.onload = function () {
$("#preview-img").attr("src", "/preview");
};
image.onerror = function() {
alert("could not load image");
};
image.src = "/preview";
【问题讨论】:
-
邮政编码..如果你使用ajax你可以。
-
为了提高效率而没有两个端点(一个用于成功/错误状态,一个用于图片,如果发生错误则为空白)的唯一原因是什么?
-
@Pamblam 代码发布
标签: javascript json http