gpt4 book ai didi

javascript - Chrome 扩展程序资源必须列在 web_accessible_resources list 键中

转载 作者:行者123 更新时间:2023-11-28 13:30:08 32 4
gpt4 key购买 nike

我尝试在 Chrome 中发送 httpget 请求,但收到此错误资源必须列在 web_accessible_resources list 键中

这是我的按钮代码

contentInput.onclick = function(){
var assetid = $('.thumbnail-span').attr("data-3d-url")
var baseurl = 'http://www.roblox.com'
var xhr = new XMLHttpRequest();
xhr.open("GET", chrome.extension.getURL(baseurl + assetid), true);
var result = xhr.responseText;
xhr.send();
console.log(result)
chrome.extension.sendRequest({
action: "EditContent",
type: assetType,
name: assetName,
content: contentData
})

和我的 list 文件

{

"name": "ROBLOX Object Downloader .obj",
"short_name": "OBJDownloader",
"description": "Allows you to quickly download assets from the browser as a .obj ",
"version": "1.0.0",
"icons": {"128":"icon.png"},
"permissions": [
"http://*.roblox.com/*",
"http://*.rbxcdn.com/*",
"downloads",
"downloads.open"
],
"background": {"scripts":["background.js"]},
"content_scripts": [
{
"matches": ["http://*.roblox.com/*-item?id=*"],
"js": ["item.js","jquery.js"]
},
{
"matches": ["http://*.roblox.com/*ser.aspx*"],
"js": ["user.js","jquery.js"]
},
{
"matches": ["http://*.roblox.com/*atalog/*"],
"js": ["cataloginsert.js","jquery.js"]
}
],
"manifest_version": 2
}

最佳答案

chrome.extension.getURL函数用于从您自己的计算机获取位于扩展程序目录内的文件:

string chrome.extension.getURL(string path): Converts a relative path within an extension install directory to a fully-qualified URL.

这意味着您的 Ajax 请求正在尝试访问类似的 URL

chrome-extension://aaaaaabbbbbccccccdddddd/http://www.roblox.com/some-asset-id

为了通过 chrome-extension:// 访问文件,您必须通过 web_accessible_resource list 字段使网页可以显式访问这些文件。

但是,您可能只想获取 Web URL http://www.roblox.com/some-asset-id。万一,getURL 完全不合适。只需执行以下操作:

xhr.open("GET", baseurl + assetid, true);

您的代码还有一个额外问题,即它不等待异步 Ajax 调用完成。您应该等待 load 事件,然后读取 responseText:

contentInput.onclick = function(){
...
var xhr = new XMLHttpRequest();
xhr.open("GET", chrome.extension.getURL(baseurl + assetid), true);

xhr.addEventListener("load", function() {
var result = xhr.responseText;
console.log(result);
doSomethingElseWith(result);
// all uses of `result` must be inside this function
});

xhr.send();

...

关于javascript - Chrome 扩展程序资源必须列在 web_accessible_resources list 键中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25630887/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com