[Tool] Chrome内的本地网页,使用XMLHttpRequest读取本地档案
[Tool] Chrome内的本地网页,使用XMLHttpRequest读取本地档案
问题情景
开发Cordova这类以网页内容作为UI的Hybrid APP时,开发人员可以使用IDE的功能将程序布署到手机或是仿真器来侦错。但是以笔者的经验来说,要检视HTML网页元素、观看CSS样式继承,最顺手的开发者工具还是Chrome。这时如果开发人员选择透过Chrome来模拟Hybrid APP,以档案方式加载本地网页来侦错,并且在网页里使用了XMLHttpRequest来额外加载本地档案(ex:AngularJS里Route功能的TemplateURL),在Chrome上会呈现下列的错误讯息:
Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///C:/Users/Clark/Desktop/XhrFileAccessSample/content.txt'.
发生这个错误的原因,是因为Chrome基于安全性的考虑,禁止本地网页使用XMLHttpRequest来读取本地档案。这也就造成了相同的HTML页面内容,布署到手机或者仿真器可以正常使用XMLHttpRequest,而在Chrome上执行却无法正常使用XMLHttpRequest。
解决方案
为了让Chrome上执行的本地网页,也能正常使用XMLHttpRequest来读取本地档案内容。开发人员可以在启动Chrome的快捷方式上,加入「--allow-file-access-from-files」参数,来开启XMLHttpRequest读取档案功能。后续使用这个快捷方式开启Chrome执行本地网页,就可以正常使用XMLHttpRequest来读取本地档案内容。
快捷方式设定
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body> <h1 id="displayBox"></h1> <script> // DisplayBox
function display(message) {
var displayBox = document.getElementById("displayBox");
displayBox.innerHTML = message;
} // XMLHttpRequest
var xhr = new XMLHttpRequest(); xhr.onload = function () {
display(xhr.responseText);
}; try {
xhr.open("get", "content.txt", true);
xhr.send();
}
catch (ex) {
display(ex.message);
} </script>
</body>
</html>
content.txt
Clark
范例下载
范例下载:点此下载
[Tool] Chrome内的本地网页,使用XMLHttpRequest读取本地档案的更多相关文章
- [Android] WebView内的本地网页,使用XMLHttpRequest读取本地档案
[Android] WebView内的本地网页,使用XMLHttpRequest读取本地档案 问题情景 在Android里,可以使用WebView来呈现本地或是远程的网页内容.但是在显示本地网页时,如 ...
- android中使用WebView请求本地网页
使用WebView的方式请参考我的上一篇文章:android中使用WebView请求网页 这里说一下请求本地网页的方法: 本地网页应该把网页保存在src/main/assets目录下: webView ...
- Chrome内核浏览器打开网页报 错误代码: ERR_TIMED_OUT
升级win10之后如果出现chrome内核的浏览器网页总是打不开 打开很慢 而ie和edge是可以正常访问的 用这个方法可以 我弄了几天终于 搞好了我直接转载过来了近期,工程师收到大量反馈360浏 ...
- Qt(QtWebEngine)加载本地网页跨域问题的总结
目录 1. 概述 2. 详论 2.1. 传参 2.2. JS module 3. 建议 4. 参考 1. 概述 浏览器直接加载本地网页的时候,如果网页涉及到加载本地资源(如图片),会出现跨域的问题.Q ...
- HTML-图片热点、网页内嵌、网页拼接、快速切图
图片热点 规划出图片上的一个区域,可以做出超链接,直接点击图片区域就可以完成跳转的效果.与图片链接不同,热点是图片上的某一个区域或多个区域. 我们用魔兽世界图片来做一个图片热点,点击logo.区域和不 ...
- Chrome模拟手机浏览网页
用Chrome模拟手机浏览网页,只需要编辑一个命令就可以实现 C:\Users\xxx\AppData\Local\Google\Chrome\Application\chrome.exe --use ...
- DevTools:Chrome 内置调试工具
DevTools:Chrome 内置调试工具 2016-08-29 https://developers.google.com/web/tools/chrome-devtools
- 安卓开发笔记(二十二):读取本地(内置)html文件并实现和Javascript交互
实际上我们通常是使用WebView控件对本地html进行读取,这样就可以体会类似web app和安卓原生混合开发的乐趣了.在读取本地html并展示在前台的时候,并不需要在Androidmenifast ...
- 通过chrome console 快速获取网页连接
通过chrome console 快速获取网页连接 var ip = document.getElementsByClassName("jDesc"); var str = &qu ...
随机推荐
- KendoUI系列:TreeView
1.加载本地数据 <link href="@Url.Content("~/Content/kendo/2014.1.318/kendo.common.min.css" ...
- JS之模板技术(aui / artTemplate)
artTemplate是个好东西啊,一个开源的js前端模板引擎,使用简单,渲染效率特别的高. 我经常使用这个技术来在前端动态生成新闻列表,排行榜,历史记录等需要在前端列表显示的信息. 下面是artTe ...
- Spark MLlib - Decision Tree源码分析
http://spark.apache.org/docs/latest/mllib-decision-tree.html 以决策树作为开始,因为简单,而且也比较容易用到,当前的boosting或ran ...
- Sparse Filtering 学习笔记(一)网络结构与特征矩阵
Sparse Filtering 是一个用于提取特征的无监督学习算法,与通常特征学习算法试图建模训练数据的分布的做法不同,Sparse Filtering 直接对训练数据的特征分布进行分析,在所谓 ...
- 第一篇博文:PHP函数原型中的可选参数写法为什么这么写?
第一篇,算是开始吧.简单写点儿东西. 刚开始学PHP,在看PHP Manual时遇到一个问题:含可选参数的函数原型中,可选参数的写法看不懂. 例如explode函数 array explode ( s ...
- ajax检查用户名是否存在
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Default.aspx.c ...
- JS网页顶部弹出可关闭广告图层
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- go环境import cycle not allowed问题处理
1.前言 今天在搭建Go语言环境,从https://golang.org/dl/上下载一个Go语言环境.环境变量配置刚开始如下配置: GOROOT=/home/go/bin go执行文件目录 ...
- Activity onDestroy() 回调缓慢问题分析及完美解决方案
说到Acitivity的onDestroy,对所有的Android开发者都很熟悉,但是不一定都知道里面存在着一些坑,分享给大家,以后踩中的时候可以应急 用Activity的时候,会发现如下问题: 有时 ...
- d
1.sql题1表名:成绩表姓名 课程 分数张三 语文 81张三 数学 75李四 语文 56李四 数学 9 ...