加油~

                --WH

一、什么是javascript跨域问题?

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

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

二、解决javascript跨域问题

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

js中几种实用的跨域方法原理

     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地址页面不是你自己能控制的,就得按照提供数据的那一方的规定格式来操作了,这里只是模拟一下这个过程。讲解原理。

         操作:

            

    <!-- 需要将函数存在 调用之前,从而保存函数存在--><script type="text/javascript">function showData(data){alert(data.success);    }</script><script type="text/javascript" src="http://localhost/web/getData?callback=showData"></script>

js跨域处理

            提供数据端

              

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

    2.2、jQuery跨域处理

        2.2.1、使用$.getJSON();

        原理图

             

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

              

         操作:

               

    <script type="text/javascript">$.getJSON("http://localhost/web/getData?callback=?",function(data){alert(data.success)});

$.getJSON操作

  

         提供数据端还是不变的。

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

            

三、总结

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

jQuery(三) javascript跨域问题(JSONP解决)相关推荐

  1. JavaScript跨域总结与解决办法

    JavaScript跨域总结与解决办法 什么是跨域 1.document.domain+iframe的设置 2.动态创建script 3.利用iframe和location.hash 4.window ...

  2. JQuery实现Ajax跨域访问--Jsonp原理

    JavaScript是一种在Web开发中经常使用的前端动态脚本技术.在JavaScript中,有一个很重要的安全性限制,被称为"Same-Origin Policy"(同源策略). ...

  3. JavaScript跨域总结与解决办法(转)

    什么是跨域 1.document.domain+iframe的设置 2.动态创建script 3.利用iframe和location.hash 4.window.name实现的跨域数据传输 5.使用H ...

  4. Javascript跨域问题总结

    疯狂的JSONP 关于JSON与JSONP简单总结 window.name实现的跨域数据传输 JavaScript跨域总结与解决办法 flash跨域策略文件crossdomain.xml配置详解 转载 ...

  5. jQuery实现ajax跨域请求

    jQuery实现ajax跨域请求 jsonp形式 <!DOCTYPE html> <html lang="en"><head><meta ...

  6. 杨老师课堂之Jquery的筛选,事件,效果,Ajax,javascript跨域)

    1 筛选[掌握]  筛选与之前"选择器"雷同,筛选提供函数 1.1 过滤 eq(index|-index),获取第N个元素 •index:一个整数,指示元素基于0的位置,这个元素 ...

  7. 前端面试查漏补缺--(三) 跨域及常见解决办法

    前言 本系列最开始是为了自己面试准备的.后来发现整理越来越多,差不多有十二万字符,最后决定还是分享出来给大家. 为了分享整理出来,花费了自己大量的时间,起码是只自己用的三倍时间.如果喜欢的话,欢迎收藏 ...

  8. 服务器端可控情形的Javascript跨域访问解决方法

    在最近的一个web项目中为了实现bookmark功能碰到了javascript跨域访问的问题.起初,在google上搜的很多解决方案并不适用于我的情形,只在有一篇文章中提到的远程加载javascrip ...

  9. WebSocket 解决javascript跨域问题一剂良药

    WebSocket 解决javascript跨域问题一剂良药 参考文章: (1)WebSocket 解决javascript跨域问题一剂良药 (2)https://www.cnblogs.com/he ...

最新文章

  1. 请注意Tokyo Tyrant (ttserver)在大数据量下的不稳定
  2. AKKA框架持久化入门样例
  3. 【软件需求工程与建模 - 小组项目】阶段性汇报-软件设计规格说明书3.0
  4. 宝塔部署node项目_宝塔面板部署 node.js 项目
  5. 【C++深度剖析教程23】继承中的访问级别
  6. java从控制台读取数据_Java不同版本从控制台读取数据方法及优缺点分析
  7. VMware vCenter Converter Standalone 5.0的安装
  8. MySQL半同步的配置
  9. django 设置媒体url_编写第一个 django 应用
  10. 【278天】每日项目总结系列016(2017.11.10)
  11. 在 Mac 上的 Pages 文稿中如何添加和替换文本?
  12. java 二进制文件修改_Java读写二进制文件操作
  13. 英特尔hd630驱动_英特尔Iris HD Graphics显卡驱动64位_ intel驱动-PChome下载中心
  14. 软件开发常用英文词汇
  15. 如何用计算机制作pop海报,手绘POP海报的制作 -电脑资料
  16. 如何在CentOS系统服务器下搭建代理IP
  17. AJAX+php实现分页器:分页展示数据
  18. 如何初始化阿里云服务器
  19. c++代码 二元一次方程求解
  20. 直流电机反接制动调速 基于双向PWM变换器的直流电机反接制动调速 直流电机双闭环调速

热门文章

  1. 《Agile Impressions》作者问答录
  2. Android第十期 - 百度地图
  3. NAT的经典配置实例
  4. 单IP无TMG拓扑Lync Server 2013:活动目录
  5. 爬虫 - CNN Business
  6. Drupal 7模板(主题钩子)的建议
  7. JS 中 indexOf 的用户及注意事项
  8. 分布式版本控制系统Git的安装与使用
  9. SpringCloud学习2-Springboot监控模块(actuator)
  10. 脏矩形(高效绘图 13.3)