zoukankan      html  css  js  c++  java
  • ajax跨域问题

    ajax访问本地数据出现错误:

    getContent.js:13 Failed to load file:///E:/WebstormProjects/dom/data.txt: Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.
    getContent @ getContent.js:13

    1.判断为ajax的跨域访问问题

    2.本地jsp没有通过服务器直接ajax中用jsonp访问本地js,使用file协议!

    3.原以为能解决跨域问题,但是上面的报错信息就已经说明了,ajax跨域只支持这些协议框架:http,https,data,chrome(Chrome浏览器),chrome-extension(Chrome扩展插件),chrome-extension-resource(Chrome扩展资源),就是没有file协议!用了jsonp这种跨域json数据交互协议也没有,人家ajax就只支持那几个协议,并且jsonp交互协议也非官方正式的。

    按照网上的解决过程:

    1.网上搜过说在google桌面图标右键—属性—快捷方式标签页—目标(就是google浏览器的安装路径)中路径后面添加" --allow-file-access-from-files",(注意前面有空格)

    问题依然存在,

    解决方法总结如下:

    1.为避免跨域问题要在服务器环境里运行含有ajax方法的页面,而不是本地页面直接访问本地文件的方式,这样保证了在用post或者get这类http请求,才能避免ajax跨域问题。

    2.本地页面ajax()请求本地页面,须通过服务器环境运行,类似这样:
    http://127.0.0.1:8888/websrc/html_ajax/testjsonp.jsp

    3.如果是在远程服务器里ajax()请求外域服务器里的页面,即使通过服务器环境运行也会报跨域的错误,此时需要通过JSONP的形式!

    所以,还是把本地jsp放入tomcat中运行再访问本地文件吧!

  • 相关阅读:
    innodb临键锁锁定范围
    详解 MySql InnoDB 中的三种行锁(记录锁、间隙锁与临键锁)
    解决Jenkins邮件配置问题
    解决import模块后提示无此模块的问题
    【转】Linux下cp: omitting directory `XXX'问题解决
    Python之异常处理(执行python文件时传入参数)
    Python之发邮件
    Python之递归
    Python之参数类型、变量
    linux sed命令详解
  • 原文地址:https://www.cnblogs.com/vichang/p/8580628.html
Copyright © 2011-2022 走看看