博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
jQuery(三) javascript跨域问题(JSONP解决)
阅读量:6197 次
发布时间:2019-06-21

本文共 1427 字,大约阅读时间需要 4 分钟。

        加油~   

                --WH

一、什么是javascript跨域问题?

      域:服务器域名,唯一标识(协议,域名,端口)必须保证一致,说明域相同

      跨域:在一个服务器上,去访问另一个服务器上,并且得到另一个服务器返回回来的值,这就是javascript跨域,其实简单点,之前我们做的ajax,都是在同域中访问,现在只是访问的服务器变成了另外的,不是同一台了。仅此而已。但是这样一变,之前的代码就不能用了。

 

 

二、解决javascript跨域问题

     解决该问题,有很多种方式,我百度了一下,好像这就属于前端的范畴了,所以我决定研究一下JSONP的这种解决方案即可,留一篇我百度到的博文,详细讲解了其他的解决方案,仅供参考。

     2.1、javascript跨域处理(JSONP) 

        原理图

              

         可能初次看这张图不是很理解,其实很简单,跟着我的思路理清楚即可。

         左边tomcat1服务器中有一个页面需要请求右边tomcat2服务器中的GetDataServlet,GetDataServlet就模拟用来返回json数据给tomcat1(跨域),这就是跨域问题。

         tomcat1中编写请求目标地址,http://localhost:80/web/getData?callback=showData  后面会解释为什么呆callback这个参数。showData这个方法是用来接收返回回来的数据所做的一些处理的方法,  在tomcat2这边,提供数据的GetDataServlet首先获取请求参数,也就是那个回调方法的方法名称。然后生成要发送回去的json数据,最后就是通知tomcat1执行回调方法(为什么可以通知?这就是前面带callback这个回调方法名称的参数的作用,因为获取到了tomcat1中的回调方法名称,所以就可以通过该名称去通知tomcat1去执行回调方法。)

         所以总的步骤就是4步,按照原理图上得步骤,一步步执行,然后获取到返回数据。注意,如果获取数据的jsonp地址页面不是你自己能控制的,就得按照提供数据的那一方的规定格式来操作了,这里只是模拟一下这个过程。讲解原理。

 

         操作:

            

js跨域处理

            提供数据端

              

 

          这里只是模拟一下这种解决方案,实际开发中遇到问题,采用这种思路即可。  

    2.2、jQuery跨域处理

        2.2.1、使用$.getJSON();

        原理图

             

         这里唯一要解释的就是,匿名回调方法的使用。

              

         操作:

               

$.getJSON操作

  

         提供数据端还是不变的。

 

        2.2.2、使用$.ajax()也能解决跨域问题。这里不做多陈述,具体可以查看文档进行操作。

            

 

 

三、总结

     这一章节图比较多,代码比较少,主要把这个跨域问题讲解清楚了,解决跨域问题还有其他很多种方式,有兴趣可以自行百度。

 

转载地址:http://itjca.baihongyu.com/

你可能感兴趣的文章
文件与文件系统的压缩与打包
查看>>
磁盘的性能影响着mysql连接数(请使用火狐浏览器浏览本页面,否则图片不显示)...
查看>>
视野和希望的对话
查看>>
修改eclipse默认工作空间和删除工作空间
查看>>
Egret之EUI及龙骨基础
查看>>
Ubuntu16.04安装Docker 入门
查看>>
有限算法下的技术实现路线
查看>>
启动和内核管理
查看>>
用php如何快速将字符串切分成数组
查看>>
使用distribute-list配置路由选择更新
查看>>
理解Oracle在AIX平台上的内存使用
查看>>
python类的使用
查看>>
http code 返回码
查看>>
MHA高可用部署及测试 推荐
查看>>
右键菜单管理---右键管家
查看>>
使用Putty密钥认证机制远程登录Linux
查看>>
IBM t43未知设备的问题
查看>>
交换机crc错误
查看>>
MongoDB 自动启动脚本
查看>>
linux系统中查看己设置iptables规则
查看>>