Chrome浏览器扩展开发系列之十五:跨域访问的XMLHttpRequest对象
XMLHttpRequest对象是W3C的标准API,用于访问服务器资源。XMLHttpRequest对象支持多种文本格式,如XML和JSON等。XMLHttpRequest对象可以通过HTTP和HTTPS发送请求。
通常出于安全的考虑,Web页面的XMLHttpRequest对象不能访问其他域的服务器。但是Chrome浏览器扩展没有这个限制,只要设置了跨域访问的权限,Chrome浏览器扩展的XMLHttpRequest对象可以访问声明的任何域的服务器。
每个Chrome浏览器扩展都运行于自己的独立安全域,Chrome浏览器扩展的XMLHttpRequest对象能够轻松访问其所在扩展的内部资源,示例如下:
1 var xhr = new XMLHttpRequest(); 2 xhr.onreadystatechange = handleStateChange; // Implemented elsewhere. 3 xhr.open("GET", chrome.extension.getURL('/config_resources/config.json'), true); 4 //访问内部位于config_resources目录下的config.json文件 5 xhr.send();
如果Chrome浏览器扩展的XMLHttpRequest对象要访问跨域资源,需要在manifest.json文件中声明要访问的域如下:
1 { 2 "permissions": [ 3 "http://www.google.com/", 4 "http://*.google.com/", 5 "https://*.google.com/", 6 "http://*/" 7 ], 8 }
注意:这里只设置域,对于域后的任何路径都将忽略。
同一域名,还要区分HTTP和HTTPS。
跨域访问的响应处理中,要注意响应数据的安全性,避免注入木马。
如果修改了Chrome浏览器扩展的默认内容安全策略,则还需要确保要访问的域被授权,如可以将要访问的域加入到connect-src或default-src中。关于Chrome浏览器扩展的内容安全策略,详见内容安全策略部分。
转载于:https://www.cnblogs.com/champagne/p/4867665.html
Chrome浏览器扩展开发系列之十五:跨域访问的XMLHttpRequest对象相关推荐
- Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展
Page Action类型的Google Chrome浏览器扩展程序,通常也会有一个图标,但这个图标位于Chrome浏览器的地址栏内右端.而且这个图标并非始终出现,而是当某指定的页面打开时才会出现.也 ...
- Chrome浏览器扩展开发系列之一:初识Google Chrome扩展
1. Google Chrome扩展简介 Google Chrome扩展是一种软件,以增强Chrome浏览器的功能. Google Chrome扩展使用HTML.JavaScript.CS ...
- chrome浏览器的跨域设置 Google Chrome浏览器下开启禁用缓存和js跨域限制--disable-web-security...
chrome用户默认路径 Win7:C:\Users\[用户名]\AppData\Local\Google\Chrome\User Data\ XP:C:\Documents and Settings ...
- Chrome浏览器扩展开发之自动化操作页面
Chrome浏览器支持扩展(Extension)开发,来定制扩展现有的功能,如:自动登录,定时刷新,抢票等功能,本文以一个简单的小例子,简述Google Chrome 扩展开发的基本步骤,仅供学习分享 ...
- 浏览器扩展开发系列教程(一)
以谷歌内核的浏览器扩展,包括 edge chrome ,还有我们常用的国产浏览器都能使用 浏览器扩展是一种软件,以增强Chrome内核浏览器的功能.浏览器扩展使用HTML.JavaScript.CSS ...
- 常见浏览器扩展开发笔记(chrome firefox 360 baidu qq sougou liebao uc opera)
浏览器扩展开发貌似时下很冷门啊,但是不少企业还是有类似的应用,360的抢票插件啊,笔者最近在做的网页翻译扩展之类的.笔者在开发的过程中,遇到了不少坑,说是坑,说白了就是各个厂商支持的API不统一导致的 ...
- 【SQL开发实战技巧】系列(十五):查找最值所在行数据信息及快速计算总和百之max/min() keep() over()、fisrt_value、last_value、ratio_to_report
系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...
- SAP UI5 应用开发教程之四十五 - 如何在 SAP UI5 应用里使用 jQuery 和原生的 DOM API
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
- 【干货】Chrome插件扩展开发全攻略
作者:小茗同学 https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html#!comments 一.写在前面 我花了将近一个多月的时间 ...
- SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...
最新文章
- render函数和redirect函数的区别+反向解析
- RT-thread内核之进程间通信
- 我的Android进阶之旅------gt;Android中通过adb shell input来模拟滑动、按键、点击事件...
- 多级反馈队列调度算法具体原理
- 【TensorFlow-windows】keras接口——卷积手写数字识别,模型保存和调用
- python递归创建目录_Node.js和Python使用递归查看目录文件和创建目录
- ioca0中断 pic单片机_关于PIC单片机的模块和功能总结
- 专家论道,把脉数据库技术发展新方向
- 反编译Silverlight项目
- 论闷声挣大钱与网红现象
- jquery radio设置选中_前端jQuery实战之 attr() 和 prop() 的区别
- 批处理删除指定文件或文件夹
- 一个并肩战斗的同事将离开团队,去家乡追寻梦想
- Android Studio连接夜神nox模拟器
- 篡改计算机网络,基于TCP协议的网络数据实时篡改.doc
- 0x00007FFE81272FE1 (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发
- Linux安装mysql数据库
- 翻译翻译什么叫她妈的惊喜_妈的程序员说,翻译
- 阿里研究院院长高红冰:如何测量数字经济的小美与大好
- C#NetFrame3.5 JsonHelper