首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Chrome扩展"Script-src“错误(自学习)

Chrome扩展"Script-src“错误(自学习)
EN

Stack Overflow用户
提问于 2015-07-20 22:14:11
回答 1查看 12.3K关注 0票数 4

在学校学习了JavaScript之后,我正在自学C++,我认为尝试构建一个Chrome扩展是一个很好的实践。我正在尝试访问OpenWeatherMap的API以获取城市ID来进行天气搜索。

下面是导致问题的代码的一部分:

代码语言:javascript
复制
var cityParam = $('#cityInput').val(); //ex. of cityParam = "New York"
        var cityURL = "http://api.openweathermap.org/data/2.5/find?callback=?&q="+ cityParam + "&type=like&sort=population&cnt=30";

        var cityJSON;

        $.getJSON(cityURL, function(data) {
            cityJSON = data;
}

我从Chrome收到的错误是:

代码语言:javascript
复制
Refused to load the script [url] ... because it violates the following Content Security Policy directive: "script-src 'self' blob: filesystem: chrome-extension-resource:".

我做了谷歌搜索,似乎Chrome扩展在你能做和不能做的事情上非常严格(例如:无法内联javascript)。由于不太熟悉web开发,我不太确定从哪里开始研究如何解决这个问题。

URL返回(我相信)一个JSON,但它以额外的?(,以结束)开头。

谢谢你的帮助!

编辑:

这是我犯的错误的截图。红色高亮显示的文本似乎来自jQuery。也许我传递的URL不能由$.getJSON()处理?

编辑2:

我按照meda的建议在清单中添加了以下内容,但错误仍然存在:

代码语言:javascript
复制
"permissions": [
    "http://api.openweathermap.org/*" 
 ]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-21 01:18:16

URL包括callback=? --这是JSONP的一个常见模式,支持它的API将JSON包装成一个简单的JavaScript函数。响应数据被传递给JS函数,并避免浏览器XHR限制。只需从API中删除callback=?,就可以了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31527235

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档