百科问答小站 logo
百科问答小站 font logo



如何绕过知乎对 Bookmarklet 跨域添加的 <script> 的限制? 第1页

  

user avatar   meowtec 网友的相关建议: 
      

报这个错是因为知乎在相应头中设置了Content-Security-Policy字段,参数之外的js文件都会被禁止,所以可以考虑下面几种方法:

1. 把script内容压缩为一行,直接执行而不是采用script标签加载。

缺点:复制起来不太方便,另外如果你要把自己的代码发布给其他人用,用户的代码不好更新。

好处是相比于远程加载更为安全和快速。

2. 通过工具(比如Mason或者代理工具)改变responseHeader中的Content-Security-Policy字段,以charles为例:

tools-rewrite

缺点:只能自己用用。

3. ajax + eval

使用XMLHttpRequest加载js文件,再使用eval执行文件内容。不过这样需要修改你的responseHeader以支持跨域:{'Access-Control-Allow-Origin': '*'}

缺点:需要服务器支持。




  

相关话题

  如何评价知乎用户 赵学浩? 
  感觉自己学会了JavaScript所有基础知识,为什么老师留一个日历的作业我还是写不出来? 
  JavaScript 最失败的设计是 arguments 吗? 
  西安电信一码通项目此前报道中提到「两天两夜把 1m 图片优化到100kb」,图像压缩技术难度是怎样的? 
  TypeScript 不适合在 vue 业务开发中使用吗? 
  被知乎十年感动到了吗? 
  如何批判知乎目前答非所问的情况? 
  如何去判断 JS 字符串中含某个字符串? 
  如何看待 Reaktor Hello World 卫星将搭载 node.js 程序? 
  为什么有的高级程序员很讨厌甚至禁止使用 setTimeout? 

前一个讨论
修改电脑的Hosts文件为什么不能阻断网络访问?
下一个讨论
如何用一个最简单的比喻告诉周围不懂物理的人,什么是低温等离子体?





© 2025-02-26 - tinynew.org. All Rights Reserved.
© 2025-02-26 - tinynew.org. 保留所有权利