Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/88.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令_Javascript_Jquery_Linkedin - Fatal编程技术网

拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令

拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令,javascript,jquery,linkedin,Javascript,Jquery,Linkedin,我试图在Linkedin页面的chrome控制台中运行js脚本。 脚本需要获取一个数组并下载该数组的.csv文件。 当我在google.com或任何其他网站上运行它时,它运行良好。但当我在Linkedin上运行它时,我得到了一个错误: 拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令: “脚本src”报告示例“”sha256-6GLJSWP3GRKZCUFWRX5AGHTECD1WVRGJOJP7R0ZQJV0=''不安全内联'static.licdn.com s.c.ln

我试图在Linkedin页面的chrome控制台中运行js脚本。 脚本需要获取一个数组并下载该数组的.csv文件。 当我在google.com或任何其他网站上运行它时,它运行良好。但当我在Linkedin上运行它时,我得到了一个错误:

拒绝运行JavaScript URL,因为它违反了以下内容安全策略指令:
“脚本src”报告示例“”sha256-6GLJSWP3GRKZCUFWRX5AGHTECD1WVRGJOJP7R0ZQJV0=''不安全内联'static.licdn.com s.c.lnkd.licdn.com static-fstl.licdn.com static-src.linkedin.com
https://www.linkedin.com/voyager/service-worker-push.js 
https://platform.linkedin.com/js/analytics.js static-exp1.licdn.com static-exp2.licdn.com s.c.exp1.licdn.com s.c.exp2.licdn.com static-lcdn.licdn.com s.c.lcdn.licdn.comhttps://www.linkedin.com/sc/ https://www.linkedin.com/scds/ https://qprod.www.linkedin.com/sc/ https://www.linkedin.com/sw.js https://www.linkedin.com/voyager/abp-detection.js https://platform.linkedin.com/litms/utag/https://platform.linkedin.com/litms/vendor/“

请注意,如果源列表中存在哈希值或nonce值,则将忽略
“unsafe-inline”

这就是我试图运行的代码:

rowsso=[[“#:”、“姓名:”、“标题:”]、[“5”、“你好”、“5”];
让csvContentss=“data:text/csv;charset=utf-8,”;
rowsso.forEach(函数(rowArray){
让row=rowArray.join(“,”);
csvContentss+=行+“\r\n”;
}); 
var encodedUri=encodeURI(csvContentss);
var link=document.createElement(“a”);
link.setAttribute(“href”,encodedUri);
setAttribute(“下载”、“我的数据.csv”);
document.body.appendChild(链接);//FF所需
link.click();

我试图寻找类似的案例,但找不到解决方法

当您在控制台中为特定网站执行某些脚本时,您将在该网站的上下文中执行它

在linkedin网站上,可能有一些标准方法的覆盖,比如appendChild的覆盖,他们已经重新实现了这些方法,以进行额外的检查,以确保不会有人从外部执行未指定的脚本

此外,linkedin可能有监听DOM更改的脚本,如果您想在DOM中放置一些奇怪的内容,他们可能会阻止这样做

更新: 我发现执行这些命令有问题

link.click()
在linkedin页面上,所以它们以某种方式阻止以编程方式在csv格式的链接元素上使用click

更新:

我看到linkedin使用:内容安全策略 请在此处阅读更多信息:


因此,他们可能不允许在浏览器中动态生成csv。

使用不违反CSP的不同方法,通过使用以下代码解决了问题:

此函数用于接收2D数组并以适当格式返回字符串,以便稍后创建csv文件:

function arrayToCSV (twoDiArray) {
var csvRows = [];
for (var i = 0; i < twoDiArray.length; ++i) {
    for (var j = 0; j < twoDiArray[i].length; ++j) {
        twoDiArray[i][j] = '\"' + twoDiArray[i][j] + '\"';  // Handle elements that contain commas
    }
    csvRows.push(twoDiArray[i].join(','));
}

var csvString = csvRows.join('\r\n');
return csvString;
}
所以大体上,in看起来是这样的:

rowsso = [["#: ", "Name: ", "Title: "], ["5","hi", "five"]];

twoDArrStr = arrayToCSV(rowsso);
downloadString(twoDArrStr, "csv" , "csvFile.csv");

但是,如果有人能更好地向我解释为什么这个方法有效而另一个不行,我会很高兴的

你知道我怎样才能克服它吗?我可以将.csv作为字符串的txt文件下载,但当我厌倦了将数据下载到.csv时,问题就开始了。我认为在linkedin页面上,csv可能会受到某种限制,下载不同的格式可能是唯一的方法……Linkedin已经实现了:我认为浏览器中动态生成csv被阻止了……我不认为这与文件类型有关,因为当我将其更改为任何类型时,相同的错误仍然存在。此外,我还尝试使用其他方法实现代码,使用window.open(link)而不定义任何文件类型,但错误保持不变。
rowsso = [["#: ", "Name: ", "Title: "], ["5","hi", "five"]];

twoDArrStr = arrayToCSV(rowsso);
downloadString(twoDArrStr, "csv" , "csvFile.csv");