AJAX中不跨域和跨域问题的解决方法

前端之家收集整理的这篇文章主要介绍了AJAX中不跨域和跨域问题的解决方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

接下来写的都是我自己学习中的一点小经验,如果有不对的地方或者有什么好的建议或意见,请前辈们指点一下~

Ajax跨域和不跨域这个问题,几乎2个星期才搞出来,没办法,用到的知识全部自学的,只能百度一点点解决问题。

前端页面我是用html5+css3写的,引进jquerymobile,这个我也要百度慢慢学习。

大学四年白学习了,一直以为前端页面不能调式,每次写代码都是很认真,不敢出错,因为一旦出错,很难发现原因,以前少了一个逗号,我花了一天时间才找到,唉~

一、调试前端页面

在浏览器中运行页面,然后按“F12”,就可以对自己写的页面进行调试了。具体怎么调试,自己摸索一下就可以了,真得是方便多了,真恨自己没有早点知道。

二、Ajax不跨域

Ajax中的不跨域问题很好解决的,百度上有很多方法,但是对于新手来说,看了之后可能会一头雾水,现在给出我的具体解决方法

在myEclipse中建一个web项目:html页面传参数到jsp页面,jsp页面返回值(注意:此处返回值是1或0,不是json数据类型)

userLogin.html


index.jsp
简单的跨域就这样实现了~

三、Ajax跨域
什么是跨域?我暂时是这样理解的,就是在 不同的域名下实现数据交互。现在我的userLogin.html 页面是放在Eclipse下的Android项目下的,index.jsp位置不
变。对跨域中两个页面稍作改变就可以解决跨域问题了。



1、userLogin.html页面中js部分做如下改变:

2、index.jsp页面修改两个地方就可以了
(1)加上这一句
..................................
      
      
/** 获取jsonp的回调函数名 **/
      
      
//String callback = request.getParameter("callback");
      
      
...............
(2)返回值的类型改成json类型,这个地方就是我一直没有成功的原因,后来百度知道了要将返回值改成json类型,也有人告诉我不是json类型也可以实现跨域,但是我没有成功。
.............
    
    
if(b!=0){
        
        
out.println(callback+"('1')"); //返回值json类型
}else{
out.println(callback+"('0')"); //返回值json类型
}
............
Ajax跨域的问题也就这样解决了。

希望大家多多指点~
原文链接:https://www.f2er.com/ajax/163001.html

猜你在找的Ajax相关文章