【问题标题】:Any chrome extension developer at here help me to find out why this warning is coming此处的任何 chrome 扩展开发人员都可以帮助我找出为什么会出现此警告
【发布时间】:2011-01-24 16:19:00
【问题描述】:

这里有没有 chrome 扩展开发人员帮我找出为什么会出现这个 chrome 控制台警告...

Chrome 控制台警告:“资源解释为脚本,但使用 MIME 类型 application/json 传输”

我的 chrome 扩展 popup.html 的代码是这样的:

$.getJSON("http://localhost/CI/index.php/api/example/users/format/json?jsoncallback=?",
 {format: "json"},function(data){
    for (var i in data) 
    {
         //alert(data[i].ThreadID);
         document.write(data[i].ThreadAuthorFirstName + " : " + data[i].ThreadTitle );
   document.write("<br />");
    }
});

扩展从服务器获取的数据是this..

[{"ThreadID":"213","ThreadTitle":"Christian Heilmann's talk for the why of HTML5 for games development","ThreadAuthorFirstName":"Suresh kumar"},{"ThreadID":"208","ThreadTitle":"The PHP Switch Statement","ThreadAuthorFirstName":"Suresh kumar"},{"ThreadID":"212","ThreadTitle":"DaVinci prototype on Xbox Kinect","ThreadAuthorFirstName":"Suresh kumar"}]

注意:我正在为使用 phil sturgeon codeigniter-restserver (http://goo.gl/YOQFq) 的 codeigniter 应用程序构建此扩展

【问题讨论】:

  • 不要将document.write 放入回调中。它不会起作用。

标签: codeigniter google-chrome warnings


【解决方案1】:

由于当前页面在不同的域中,jQuery 正在发送一个 JSONP 请求,该请求会创建一个&lt;script&gt; 标签。

您的服务器正在以application/json 而不是text/javascript 发送响应(到&lt;script&gt; 标签)。

【讨论】:

  • 感谢 Slaks,在进行了一些更改后,警告已经消失。现在没有错误也没有警告,但是,当我点击扩展图标时,什么也没有发生。只是一个空白的盒子来了......
  • @mi6:要么更改您的服务器以返回 JSONP(这会造成安全漏洞),要么更改您的代码以发出正常的 AJAX 请求。
  • 如果我发出正常的 AJAX 请求,它会显示一些“Access-Control-Allow-Origin”错误。下面是正常AJAX请求的代码.. $.ajax({ type: "POST", url: "localhost/CI/index.php/welcome/chromeExtension", data: "json", success: function(data){ //alert( "Data Saved: " + msg ); var obj = jQuery.parseJSON('{"json": data }'); for (var i in obj.json) { //alert(obj.json[i].ThreadID); document.write (obj.json[i].ThreadAuthorFirstName + " : " + obj.json[i].ThreadTitle ); document.write("
    "); } } });
  • @mi6:那是因为你在一个普通的页面,而不是一个扩展。您可以使用 JSONP(并注意信息泄露)或在扩展程序中运行该代码。
  • 在我的扩展中有 3 个文件。 * icon.png * manifest.json * popup.html 上面显示的纯 AJAX 代码已在此 popup.html 文件中使用,我通过单击扩展图标来执行 popup.html。
猜你喜欢
  • 2022-12-20
  • 2022-07-12
  • 2018-01-26
  • 2021-05-14
  • 1970-01-01
  • 2022-12-10
  • 1970-01-01
  • 2021-10-23
  • 2019-08-28
相关资源
最近更新 更多