0

这是我的应用程序代码:

manifest.json 文件:

{
 "name": "YouTradeFx Debugger",
 "version": "1.0",
 "manifest_version": 2,
 "description": "This appliction allow YoutradeFX R&D team to debugging thier applications, by using few tools",
 "browser_action": {
   "default_popup": "app.html"
 }
}

app.html 文件:

<html>
<head>
 <title>Source of the application</title>
 <script src="jquery.js"></script>
 <script src="app.js"></script>
</head>
<body style="width: 350px;">
  <span style="display: none;">
   <button id="Http">Send Requests</button>
    <button id="Cookie">Add Lead Params</button>
    <button id="Crm">CRM Faliure</button>
</span>
 <div id="Content">
 <table id="cons">
  <tr>
   <td>Please your username:</td>
   <td><input type="text" id="names" name="user"></td>
  </tr>
  <tr>
  <td><input type="submit" name="send" value="SEND"></td>
 </tr>
 </table>
</div>
</body>
</html>

app.js 文件是:

$(document).ready(function(){

 var HoldUser = $("input#names").val();
 $.get("https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid="+HoldUser,function(data){
   $("div#cons").html(data);
 });

});

但我收到错误消息“拒绝执行内联脚本,因为它违反了以下内容安全策略指令:”script-src 'self' chrome-extension-resource: “。” 每时每刻..!

为什么不工作?我做错事情了?

4

2 回答 2

0

您正在加载 HTML(我假设)https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid="+HoldUser,然后将其注入您的app.html页面。当 HTML 被注入时,它被解析并开始加载所有提到的资源( <script><link><object>等)。<img>由于您可能在那里有一些 JavaScript 文件,并且由于默认的 Chrome 扩展程序策略不允许扩展程序从远程位置运行脚本,因此您会收到安全违规错误。

您可以通过让网站的响应更像 API 调用、返回 JSON 或文本而不是 HTML 来解决此问题。如果mywebsite.com不是您的,或者您不想在那里更改任何内容,您可以将它在CSP中加载的脚本列入白名单,或者在注入之前解析data返回的变量$.get并删除所有等。<script>

于 2012-10-10T15:23:35.603 回答
0

您正在获取页面https://www.mywebsite.com/ChromeExt/crm_buffer.php?uid="+HoldUser因此您可能在该页面上有单击、鼠标按下等事件。而且我没有看到任何权限在manifest.json上。这也可能会阻止请求。您可以通过将以下几行添加到manifest.json来轻松测试它。如果这不起作用,请检查 mywebsite.com 以查看是否损坏。

"permissions": [
    "http://*/*",
    "https://*/*",
],
于 2012-10-11T21:56:24.083 回答