我是在學校學習C++後自學的JavaScript,我認爲這是一個很好的做法,試圖構建Chrome擴展。我正在嘗試訪問OpenWeatherMap的API以獲取城市ID進行天氣搜索。Chrome擴展「Script-src」錯誤(自學)
這是導致問題的部分代碼:
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中收到了錯誤:
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:
我加入由梅達的建議下我的清單,但錯誤依然存在:
"permissions": [
"http://api.openweathermap.org/*"
]
這可能也有幫助:http://stackoverflow.com/questions/25867584/extension-refuses-to-load-the-script-due-to-content-security-policy-directive – igaurav
如果您的目標端點支持https ,那麼只需在'manifest.json'處添加這一行:'「content_security_policy」:「script-src'self'https://example.com; object-src'self'」' – makerj