脚本导致“拒绝执行内联脚本:要么’unsafe-inline’关键字,哈希……或者nonce才能启用内联执行”

我一直收到这个错误:

拒绝执行内联脚本,因为它违反了以下内容安全策略指令:“default-src’self’data:gap: http : //www.visitsingapore.com https ://ssl.gstatic.com’unsafe-eval’” 。 可以使用’unsafe-inline’关键字,散列(’sha256-V + / U3qbjHKP0SaNQhMwYNm62gfWX4QHwPJ7We1PXokI =’)或nonce(’nonce -…’)来启用内联执行。 另请注意,’script-src’未明确设置,因此’default-src’用作后备。

谁能告诉我如何解决这个问题,这是什么意思? 我的代码是:

      $.ajax({ url: ' http://www.visitsingapore.com/api.listing.en.json', type: 'GET', beforeSend: function (xhr) { xhr.setRequestHeader('email ID', '-------@gmail.com'); xhr.setRequestHeader('token ID', '-------'); }, data: {}, success: function (qwe12) { var TrueResult2 = JSON.stringify(qwe12); document.write(TrueResult2); }, error: function () { }, }); 

解决此问题的最佳方法是从文档中取出$.ajax(…)调用并将其移动到名为ajax-call.js的外部文件中,然后执行以下操作:

  

更好的原因是,如果您已经为您的文档设置CSP策略,那么理想情况下您应该去除所有内联脚本的额外工作。

但是如果由于某种原因你确实需要在文档中内嵌该脚本,你可以更改该元素,以便将错误消息中的确切sha256哈希值作为script-src指令的源包含在内,就像这样(有些添加换行符只是为了便于阅读):

  

还有一些地方可以获得更多信息: