chrome扩展content-scripts请求跨域
时间: 2023-10-05 19:09:28 浏览: 46
Chrome扩展content-scripts请求跨域的问题,可以通过在manifest.json文件中添加"permissions"和"web_accessible_resources"字段来解决。具体步骤如下:
1. 在manifest.json文件中添加"permissions"字段,用于声明扩展需要访问的权限。例如:
```
{
"name": "My Extension",
"version": "1.0",
"manifest_version": 2,
"permissions": [
"http://www.example.com/*"
],
"content_scripts": [
{
"matches": ["http://www.example.com/*"],
"js": ["content_script.js"]
}
]
}
```
以上代码中,"http://www.example.com/*"表示扩展需要访问的域名,"content_scripts"表示扩展需要注入的脚本。
2. 在manifest.json文件中添加"web_accessible_resources"字段,用于声明扩展需要访问的资源。例如:
```
{
"name": "My Extension",
"version": "1.0",
"manifest_version": 2,
"permissions": [
"http://www.example.com/*"
],
"content_scripts": [
{
"matches": ["http://www.example.com/*"],
"js": ["content_script.js"]
}
],
"web_accessible_resources": [
"http://www.example.com/*"
]
}
```
以上代码中,"http://www.example.com/*"表示扩展需要访问的资源。
3. 在content_script.js文件中使用XMLHttpRequest或fetch等API发送跨域请求,代码示例如下:
```
fetch('http://www.example.com/api/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
```
以上代码中,fetch方法用于发送跨域请求,并且在响应中获取数据。
需要注意的是,如果要在content-scripts中使用cookie等认证信息,需要在manifest.json文件中添加"permissions"字段,并使用XMLHttpRequest或fetch等API发送带有cookie的跨域请求。