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对象相关推荐

  1. Chrome浏览器扩展开发系列之五:Page Action类型的Chrome浏览器扩展

    Page Action类型的Google Chrome浏览器扩展程序,通常也会有一个图标,但这个图标位于Chrome浏览器的地址栏内右端.而且这个图标并非始终出现,而是当某指定的页面打开时才会出现.也 ...

  2. Chrome浏览器扩展开发系列之一:初识Google Chrome扩展

    1.       Google Chrome扩展简介 Google Chrome扩展是一种软件,以增强Chrome浏览器的功能. Google Chrome扩展使用HTML.JavaScript.CS ...

  3. chrome浏览器的跨域设置 Google Chrome浏览器下开启禁用缓存和js跨域限制--disable-web-security...

    chrome用户默认路径 Win7:C:\Users\[用户名]\AppData\Local\Google\Chrome\User Data\ XP:C:\Documents and Settings ...

  4. Chrome浏览器扩展开发之自动化操作页面

    Chrome浏览器支持扩展(Extension)开发,来定制扩展现有的功能,如:自动登录,定时刷新,抢票等功能,本文以一个简单的小例子,简述Google Chrome 扩展开发的基本步骤,仅供学习分享 ...

  5. 浏览器扩展开发系列教程(一)

    以谷歌内核的浏览器扩展,包括 edge chrome ,还有我们常用的国产浏览器都能使用 浏览器扩展是一种软件,以增强Chrome内核浏览器的功能.浏览器扩展使用HTML.JavaScript.CSS ...

  6. 常见浏览器扩展开发笔记(chrome firefox 360 baidu qq sougou liebao uc opera)

    浏览器扩展开发貌似时下很冷门啊,但是不少企业还是有类似的应用,360的抢票插件啊,笔者最近在做的网页翻译扩展之类的.笔者在开发的过程中,遇到了不少坑,说是坑,说白了就是各个厂商支持的API不统一导致的 ...

  7. 【SQL开发实战技巧】系列(十五):查找最值所在行数据信息及快速计算总和百之max/min() keep() over()、fisrt_value、last_value、ratio_to_report

    系列文章目录 [SQL开发实战技巧]系列(一):关于SQL不得不说的那些事 [SQL开发实战技巧]系列(二):简单单表查询 [SQL开发实战技巧]系列(三):SQL排序的那些事 [SQL开发实战技巧] ...

  8. SAP UI5 应用开发教程之四十五 - 如何在 SAP UI5 应用里使用 jQuery 和原生的 DOM API

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

  9. 【干货】Chrome插件扩展开发全攻略

    作者:小茗同学 https://www.cnblogs.com/liuxianan/p/chrome-plugin-develop.html#!comments 一.写在前面 我花了将近一个多月的时间 ...

  10. SAP UI5 应用开发教程之五十五 - 如何将本地 SAP UI5 应用通过 Node.js Express 部署到公网上试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 教程目录 SAP UI5 本地开发环境的搭建 SAP UI5 应用开发教程之一:Hello World SAP UI5 应用开发教程之二:SAP U ...

最新文章

  1. render函数和redirect函数的区别+反向解析
  2. RT-thread内核之进程间通信
  3. 我的Android进阶之旅------gt;Android中通过adb shell input来模拟滑动、按键、点击事件...
  4. 多级反馈队列调度算法具体原理
  5. 【TensorFlow-windows】keras接口——卷积手写数字识别,模型保存和调用
  6. python递归创建目录_Node.js和Python使用递归查看目录文件和创建目录
  7. ioca0中断 pic单片机_关于PIC单片机的模块和功能总结
  8. 专家论道,把脉数据库技术发展新方向
  9. 反编译Silverlight项目
  10. 论闷声挣大钱与网红现象
  11. jquery radio设置选中_前端jQuery实战之 attr() 和 prop() 的区别
  12. 批处理删除指定文件或文件夹
  13. 一个并肩战斗的同事将离开团队,去家乡追寻梦想
  14. Android Studio连接夜神nox模拟器
  15. 篡改计算机网络,基于TCP协议的网络数据实时篡改.doc
  16. 0x00007FFE81272FE1 (ucrtbased.dll) (Project1.exe 中)处有未经处理的异常: 0xC0000005: 读取位置 0x0000000000000000 时发
  17. Linux安装mysql数据库
  18. 翻译翻译什么叫她妈的惊喜_妈的程序员说,翻译
  19. 阿里研究院院长高红冰:如何测量数字经济的小美与大好
  20. C#NetFrame3.5 JsonHelper

热门文章

  1. Lecture 4:无模型预测
  2. Tensorflow官方文档学习理解 (四)-深入MNIST
  3. 1.3、TetGen网格化过程之描述
  4. Airbnb 面试题汇总
  5. RunLoop相关知识
  6. float.valueof()自动截取有效位数
  7. 第二次 HDOJ 1003
  8. springboot情操陶冶-web配置(六)
  9. hibernate笔记4--qbc查询
  10. mybatis框架搭建学习初步