PDF.js在访问pdf文件的时候,有时候会涉及到跨域问题,介绍一种.NET和PDF.js配合使用的方法。

前端代码:

<script type="text/javascript">var PDFData = "";$.ajax({type: "get",crossDomain: true,async: false, // false是不采用异步的方式mimeType: 'text/plain;charset=x-user-defined',//这里是后台方法,根据实际情况编写自己的参数,主要是返回文件流url: "http://localhost:61582/Seal/DownLoad?Name=20171107&ProjectId=1&SignCount=2",  success: function (data) {PDFData = data; // data是byte[]数组}});var rawLength = PDFData.length;// 转换成pdf.js能直接解析的Uint8Array类型,见pdf.js-4068var array = new Uint8Array(new ArrayBuffer(rawLength));for (var i = 0; i < rawLength; i++) {array[i] = PDFData.charCodeAt(i) & 0xff;}var pdf_url = array;// var url = 'default.pdf';var pdfh5 = new Pdfh5('.pdfjs', {pdfurl: pdf_url});//监听当前加载的pdf页数,currentPageDom当前加载的pdf的dom,currentNum当前加载的pdf页数,pdfh5.on("renderPages",function(currentPageDom){console.log(this.currentNum)console.log(pdfh5.currentNum)})</script>

注意前端代码那里的URL,根据实际情况编写所需参数,主要是返回文件流,就可以。

后端代码:

 public void DownLoad(string Name, int ProjectId,int SignCount){Response.ContentType = "application/x-zip-compressed";Response.AddHeader("Content-Disposition", "attachment;filename=" + Name + ".pdf");string filename = Server.MapPath(EM.getPdfpath((EM.ProjectFold)ProjectId) + (SignCount==1? "signone\\" : "signtwo\\") + Name + ".pdf");Response.TransmitFile(filename);}

filename根据项目实际情况,获取到文件所在路径地址,再使用上边的代码,这样就可以了。

注意webconfig中需要添加一个设置,在system.webServer中添加如下内容:

<httpProtocol><customHeaders><add name="Access-Control-Allow-Origin" value="*" /><add name="Access-Control-Allow-Headers" value="*" /><add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE" /></customHeaders></httpProtocol>

ASP.NET解决PDF.js跨域访问问题相关推荐

  1. js跨域访问,No 'Access-Control-Allow-Origin' header is present on the requested resource

    js跨域访问提示错误:XMLHttpRequest cannot load http://...... No 'Access-Control-Allow-Origin' header is prese ...

  2. vb跨域访问ajax,解决AJAX的跨域访问-两种有效示例

    这篇文章主要为大家详细介绍了解决AJAX的跨域访问-两种有效示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!新的W3C策略实现了HTTP跨域访问,还 ...

  3. 利用代理页面解决html iframe跨域访问网站问题

    原文:利用代理页面解决html iframe跨域访问网站问题 源代码下载地址: http://www.zuidaima.com/share/1854884509142016.htm 在做项目的时候遇到 ...

  4. pdf.js跨域解决方法——远程加载pdf

    思路:通过将需要浏览的pdf通过后台转为文件流传给前端,来解决跨域问题. js代码写在viewer.html里,放到引用pdf.js的位置前面 js代码,来接收文件流: <script>v ...

  5. js 跨域访问问题解决方法

    什么引起了ajax不能跨域请求的问题? ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告. 有什么完美的解决方案么 ...

  6. pdf.js跨域及屏蔽下载

    下载地址 https://github.com/mozilla/pdf.js/releases/ 使用方法 在webroot或者webapps目录下建一个文件夹pdf.js,然后把下载后的文件解压,复 ...

  7. Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法

    当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示 XMLHttpRequest cannot load http://xxxxxx. Origin http://xxxxxx ...

  8. JS跨域访问(ajax跨域)

    好吧,国庆有点不务正业,玩了几天游戏,咳咳 感觉还不错,放松下,本来是打算学angular2的,国庆的时候刚好也看到vue2的正式版本发布,恩,最后都没看.. 正言 为什么会出现跨域? 跨域的产生是因 ...

  9. 允许asp.net web程序的跨域访问

    什么叫跨域? 简单理解就是不同服务器,不同域名之间的访问. 如何设置asp.net web程序的跨域? 在web.config中添加如下代码 <system.webServer> < ...

最新文章

  1. tar打包及打包并压缩
  2. 【FFMPEG源码终极解析】 avformat_open_input (一)
  3. 【转】算法导论学习笔记 一 分治算法
  4. python手绘教学_Python实现手绘功能
  5. 【翻译】从Store生成Checkbox Group
  6. 编程语言开发编程语言_D编程语言是开发的绝佳选择的5个理由
  7. textview 背景变形_今日推荐:温州洞头-背景墙框石塑线条
  8. 线性判别式分析-LDA-Linear Discriminant Analysis
  9. LINUX 循环脚本
  10. CentOS 7安装java及其配置
  11. conda 解决An HTTP error occurred when trying to retrieve this URL.
  12. 附近的人实现原理详细剖析!
  13. 元器件 - TVS二极管
  14. mac +xcode 下WebDriverAgent环境配置
  15. 教你学会u盘重装win10系统,u盘系统盘安装win10
  16. 对脚手架的使用的几点建议
  17. 个人信息怎么被贱卖:运营商内鬼不可或缺
  18. One-move Checkmate (ZOJ 1598)
  19. “华为杯”山东理工大学第十一届ACM程序设计竞赛 E - 九连环
  20. 解救西西弗斯- 模型驱动架构

热门文章

  1. 2022虎年春节拜年祝福语微信小程序源码下载
  2. Vue 中 title 的动态修改
  3. 数据结构笔记——树的基本概念
  4. 苹果uwb_什么是UWB?为什么苹果和三星突然对它如此感兴趣?
  5. 2014以及未来几年编程语言趋势
  6. 国企招聘:省通用航空产业发展有限公司(省属国企)招聘2023届管培生
  7. html 正则表达式密码判断,密码的正则表达式
  8. tp5.1 获取表里的所有数据_一个公式,将数据提取到指定工作表
  9. pythonboxplot_在python中,如何将标签添加到plotly boxplot?
  10. html5跳转WiFi设置,如何进入wifi管理界面_如何进入wifi设置界面?-192路由网