百科问答小站 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': '*'}

缺点:需要服务器支持。




  

相关话题

  为什么现在又流行服务端渲染html? 
  为什么后端按月份查询数据的时候,不直接让前端传一个年月就好? 
  知乎上有哪些典型的无用型回答? 
  JavaScript、jQuery、AJAX、JSON 这四个之间的关系? 
  Promise 不能被取消,真的算是它的缺点吗? 
  如何看待知乎的“感谢”功能变成了“喜欢”? 
  网上常能见到的一段 JS 随机数生成算法如下,为什么用 9301, 49297, 233280 这三个数字做基数? 
  post 相比get 有很多优点,为什么现在的HTTP通信中大多数请求还是使用get? 
  从设计人员输出的PSD图到最终转换为页面代码,整个过程要用到哪些知识,使用哪些工具,有哪些注意点?有这方面的书籍推荐吗? 
  知乎是否无法解决“专业人士的付出与收获不成比例”这个最根本问题? 

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





© 2025-05-29 - tinynew.org. All Rights Reserved.
© 2025-05-29 - tinynew.org. 保留所有权利