请参阅以下代码:
控制器:
public ActionResult GetPDF()
{
byte[] pdf = GetPdfFromDatabase();
return new FileContentResult(reportData, "application/pdf");
}
查看:
<iframe src="@Url.Action("GetPDF","Account")" width="600" height="500"></iframe>
Javascript控制台:
每次加载页面时,都会显示此警告!!!
答案 0 :(得分:14)
iframe使用内容类型text / html请求src属性中提到的资源。所以这条消息只说&#34;我请求了html,但是服务器用pdf&#34;
答案 1 :(得分:6)
我相信警告不容忽视。
我发现这个问题的替代方法,使用object标签,如下所示:
&lt; object data =“your-data-base-64”type =“application / pdf”&gt;&lt; / object&gt;
如果您使用angularJS,以防止控制台出错:
&lt; object ng-attr-data =“your-data-base-64”type =“application / pdf”&gt;&lt; / object&gt;
答案 2 :(得分:4)
谁遇到这个话题。 (我也是。)为了获得最佳解决方案,您需要创建HTML页面以充当iframe登录页面以显示PDF内容。
这是示例html。我只是从chrome中提取。
<html><body style="background-color: rgb(38, 38, 38); height: 100%; width: 100%; overflow: hidden; margin: 0px;"><embed width="100%" height="100%" name="plugin" id="plugin" src="your_pdf_url" type="application/pdf"></body></html>
只需将your_pdf_url
替换为您的真实网址即可。我只是在Laravel中将此html添加为中间件并显示此HTML,以便Chrome不再发出警告。您可以使用此html作为基础,并创建更好的pdf登录页面,如自定义加载。