C# asp.net fancybox加载映像错误
下面是google chrome的fancybox iframe的输出 这是IE的fancybox ifrom的输出 以下是标记页面代码:C# asp.net fancybox加载映像错误,c#,asp.net,fancybox,C#,Asp.net,Fancybox,下面是google chrome的fancybox iframe的输出 这是IE的fancybox ifrom的输出 以下是标记页面代码: <script type="text/javascript"> $(document).ready(function () { /* * Examples - images */ $("[id*=img]").fancybox(); $('.
<script type="text/javascript">
$(document).ready(function () {
/*
* Examples - images
*/
$("[id*=img]").fancybox();
$('.fancyframe').fancybox({
'titlePosition': 'inside',
'type': 'iframe',
'width': 1024,
'height': 768
});
});
</script>
<a class="fancyframe" href="/imgLoader.aspx"><img src="/imgLoader.aspx"></a>
为什么chrome只加载字节数组而不是图像,而IE可以显示图像以及如何修复此错误?因为您只是发送字节数组,而没有告诉浏览器它是什么
protected void Page_Load(object sender, EventArgs e)
{
byte[] a = Common.GetImage();
Response.BinaryWrite(a);
}
尝试添加:
Response.ContentType = "image/jpeg";
在调用Response.BinaryWrite之前
编辑:仅供参考,我通常在写出图像之前调用Response.Clear()
,然后在之后调用Response.End
因此:
为什么??只是为了确保ASP.NET没有发送到浏览器的任何其他垃圾,这可能会混淆它 文件
imgLoader.aspx
是否返回图像以外的任何内容?JFK:不,它只返回该图像的字节数组..通过添加Response.ContentType=“image/jpeg”解决了问题;对于响应页面,另一种选择是在fancybox脚本中添加“type”:“image”
(而不是iframe
)。
Response.ContentType = "image/jpeg";
protected void Page_Load(object sender, EventArgs e)
{
Response.Clear();
byte[] a = Common.GetImage();
Response.BinaryWrite(a);
Response.End();
}