解决本地调试导致的Ajax跨域问题
来源:互联网 发布:打车软件排名 编辑:程序博客网 时间:2024/06/06 02:52
写了Ajax在chrome测试时,会报错:XMLHttpRequest cannot load file:///E:/web/jqueryTest/ajax.html. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.
这是由于涉及到跨域问题!直接用浏览器打开是通过file协议,没有在服务器环境里运行含有ajax方法的页面。
在这篇文章中有了很好的解释 http://www.exp99.com/jswz/f2e/1415609654_115.html
本地页面ajax()请求本地页面,须通过服务器环境运行,类似这样:http://127.0.0.1:8888/2014/DEMO/html_ajax/index.html
这个问题有两种解决方案,第一种是给chrome添加启动参数,第二种是把本地配成服务器环境。
1. 添加启动参数
在网上查到的解决方法大多是给chrome添加启动参数:--allow-file-access-from-files ,这样本地ajax请求就不会报跨域错误了。(注意如果给chrome添加多个启动参数,每个启动参数“--”之前要有空格隔开,如"C:\ProgramFiles\Google\Chrome\Application\chrome.exe" --enable-file-cookies--allow-file-access-from-files)。
但是导致这个跨域问题的是因为采用的协议不对,发布上线并不会有这种情况,所以个人觉得这种解决方法只是掩盖错误的测试方式,没有采用。
2. 本地配置成服务器环境
安装好tomcat,然后配置好环境变量(tomcat安装目录的bin目录即可,如下图)。
接着就可以在命令行里敲入 catalina run,启动tomcat,访问一下 http://127.0.0.1:8080,出现了这个页面。
说明tomcat启动成功了,接着把自己写的整个项目(最上级目录)放入tomcat安装目录的webapps下,如:C:\Program Files\apache-tomcat-8.0.26\webapps。如果项目目录是test,那么放好之后可以用http://127.0.0.1:8080/test访问,这时用ajax load的内容成功显示在页面上。
除此以外,配成服务器环境测试还发现chrome本地不能存cookie的问题也得到解决。撒花!
- 解决本地调试导致的Ajax跨域问题
- 解决本地调试导致的Ajax跨域问题
- 解决浏览器在本地无法跨域请求,不支持Ajax请求,XMLHttpRequest不能加载的问题
- 解决AJAX传送中文会导致乱码的问题
- 解决AJAX传送中文会导致乱码的问题
- Ajax本地跨域问题
- Ajax本地跨域问题
- 解决Chrome不支持本地Ajax请求的问题
- 解决Chrome不支持本地Ajax请求的问题
- chrome本地调试解决跨域
- Ajax--解决跨域浏览的问题
- 解决AJAX跨域访问的问题
- 解决ajax跨域问题的实例
- 解决ajax跨域访问的问题
- 解决ajax的跨域问题
- $.ajax跨域问题的简单解决。
- jsonp的解决ajax跨域问题
- ajax 、ajax的交互模型、如何解决跨域问题
- (转)Windows Server2008R2安装Oracle Database 11g Release 2 (服务器类,高级安装)
- this关键词
- JAVA随堂笔记课【十】:Final,不定参数,访问修饰符,JavaBean
- 基于webrtc技术的浏览器视频会议
- HttpClient使用详解
- 解决本地调试导致的Ajax跨域问题
- Tomcat7中开启gzip压缩功能的配置方法
- Allegro artwork drill 是空心的
- C#开启路由器upnp功能
- 判断用户是否登录方面
- \n的用法
- cmake学习(五) 系统默认变量和内置变量
- 动态添加css样式至文件中
- 关于The ONE模拟器,DTN网络路由算法以及研究生毕业论文