什么是ajax跨域访问

AJAX跨域访问是用户访问A网站时所产生的对B网站的跨域访问请求均提交到A网站的指定页面。即Ajax请求一个目标地址为非本域(协议、域名、端口任意一个不同)的web资源,并根据响应获得外部应用数据。

什么是ajax跨域访问

Ajax请求一个目标地址为非本域(协议、域名、端口任意一个不同)的web资源,并根据响应获得外部应用数据。比如我们用Ajax访问城市天气预报、IP地址等公共服务接口时,就涉及跨域了。我们请求一个外部服务时,浏览器会基于安全问题拒绝授权访问。

而script、script、iframe标签的src属性就不存在跨域的问题,所以Ajax跨域就是利用这一点以及js对JSON的支持,外部服务只要给Ajax的请求响应一段JS代码或JSON数据,就能被Ajax获取到。

由于安全方面的原因, 客户端js使用xmlhttprequest只能用来向来源网站发送请求,比如在www.readlog.cn下去请求test.readlog.cn的数据,都是不行的。不过,解决办法倒是不少。这里整理一下。

解决方式1 web代理的方式 (on Server A) 

由该页面代替用户页面完成交互,从而返回合适的结果。此方案可以解决现阶段所能够想到的多数跨域访问问题,但要求A网站提供Web代理的支持,因此A网站与B网站之间必须是紧密协作的,且每次交互过程,A网站的服务器负担增加,且无法代用户保存session状态。 

解决方式2. on-Demand方式 (on Server A) 

MYMSN的门户就用的这种方式,不过 MYMSN中不涉及跨域访问问题。在页面内动态生成新的

解决方式3. iframe方式 (on Server A) 
查看过醒来在JavaEye上的一篇关于跨域访问的帖子,他提到自己已经用iframe的方式解决了跨域访问问题。数据提交跟获取,采用iframe这种方式的确可以了,但由于父窗口与子窗口之间不能交互(跨域访问的情况下,这种交互被拒绝),因此无法完成对父窗口效果的影响。 
在页面内嵌或动态生成指向别的网站的IFRAME,然后这2个网页间可以通过改变对方的anchor hash fragment来传输消息。改变一个网页的anchor hash fragment并不会使浏览器重新装载网页,所以一个网页的状态得以保持,而网页本身则可以通过一个计时器(timer)来察觉自己anchor hash的变化,从而相应改变自己的状态。

解决方式4. 用户本地转储方式 (local) 
IE本身依附于windows平台的特性为我们提供了一种基于iframe,利用内存来“绕行”的方案,即两个window之间可以在客户端通过windows剪贴板的方式进行数据传输,只需要在接受数据的一方设置Interval进行轮询,获得结果后清除Interval即可。FF的平台独立性决定了它不支持剪贴板这种方式,而以往版本的FF中存在的插件漏洞又被fixed了,所以FF无法通过内存来完成暗渡陈仓。而由于文件操作FF 也没有提供支持(无法通过Cookie跨域完成数据传递),致使这种技巧性的方式只能在IE中使用。

解决方式5: (其实还是在服务端A用iframe解决了与服务器B通信的问题) 
要解决的问题:发生在用户提交网页 URL (还包括 Tag, Notes 等)给bookmark 服务器时。 
关于 URL 的提交至少可以有三种方式: 
1. 登陆 Bookmark 服务器的提交页面,将要收藏的 URL 通过该页面提交给服务器。 
2. 安装浏览器插件,通过插件将 URL 提交给服务器。 
3. 从 Bookmark 服务器动态加载 javascript 小工具到当前页面,通过它来完成提交工作。 

第一种方式开发起来最简单,但对用户来讲比较麻烦,每次都需要先登陆 Bookmark 服务器才能完成提交;第二种方式我并不熟悉插件开发,而且用户也不喜欢太多的插件堆满自己的浏览器;第三种方式开发难度小,又避免了每次登陆服务器的麻烦,所以最终采用它。第三种方式中动态加载的 javascript 小工具除了需要生成 UI 供用户填写信息( URL , tag , notes 等),当用户点击提交的时候,还要完成与服务器通信的功能。 

以上就是什么是ajax跨域访问的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2730581.html

(0)
上一篇 2025年3月8日 00:18:40
下一篇 2025年2月25日 14:09:36

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • ajax异步是什么

    ajax的全称是asynchronous javascript and xml(异步的 javascript 和 xml)。ajax不是新的编程语言,而是一种使用现有标准的新方法。 ajax是一种在无需重新加载整个网页的情况下,能够更新部分…

    2025年3月8日
    200
  • jquery ajax怎么使用

    ajax() 方法通过 http 请求加载远程数据。 该方法是 jQuery 底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。$.ajax() 返回其创建的 XMLHttpRequest 对象。大多数情况下你无需…

    2025年3月8日
    200
  • ajax跨域的基本流程

    1. ajax AJAX(Asynchronous JavaScript and XML),意思就是用JavaScript执行异步网络请求。主要可以通过架设代理服务器,JSONP和CORS三种方案实现跨域用JavaScript写一个完整的A…

    2025年3月8日
    200
  • 使用jquery的ajax发起访问请求

    向结口发起请求是开发人员经常要用到的一种获取数据的方式,通过向接口提交数据,再接收接口返回的数据的方法来获取需要的数据。jquery为我们提供了ajax方法来方便我们请求接口。下面我就来想大家介绍一下jquery的ajax的使用方法。 第一…

    2025年3月8日
    200
  • ajax跨域详细介绍

    ajax跨域 说明:本文部分内容均来自慕课网。@慕课网:https://www.imooc.com 课程介绍   ●什么是ajax跨域问题   ●产生ajax跨域问题的原因   ●解决ajax跨域问题的思路和方法 什么是ajax跨域问题  …

    2025年3月8日 编程技术
    200
  • Ajax完整详细教程(一)

    Ajax 简介 ajax 由 html、javascript™ 技术、dhtml 和 dom 组成,这一杰出的方法可以将笨拙的 web 界面转化成交互性的 ajax 应用程序。它是一种构建网站的强大方法。 Ajax 尝试建立桌面应用程序的功…

    2025年3月8日
    200
  • Ajax完整详细教程(三)

    在本系列的 上篇文章 中,我们将详细介绍 xmlhttprequest 对象,它是 ajax 应用程序的中心,负责处理服务器端应用程序和脚本的请求,并处理从服务器端组件返回的数据。由于所有的 ajax 应用程序都要使用xmlhttprequ…

    2025年3月8日 编程技术
    200
  • ajax请求的五个步骤

    ajax请求的五个步骤     第一步,创建XMLHttpRequest对象 第二步,注册回调函数 第三步,配置请求信息,open(),get 第四步,发送请求,post请求下,要传递的参数放这 第五步,创建回调函数 //第一步,创建XML…

    2025年3月8日
    200
  • ajax获取网页添加到div中的方法

    ajax获取网页添加到div中的方法 1:利用DOM获取该 div 的 ID,然后清空该DIV的内容(如果你需要接着里面的内容添加可不要清空);需要注意点是清空最好用“ empty()  ”; 2: 把  async设成true ,否则又一…

    2025年3月8日
    200
  • 原生JS封装AJAX方法

    ajax大家每天都在用,jquery库对ajax的封装也很完善、很好用,下面我们看一下它的内部原理,并手动封装一个自己的ajax库。 一、原理 原生Ajax的发送需要四步: 1) 创建Ajax对象: XMLHttpRequest 2) 设置…

    编程技术 2025年3月7日
    200

发表回复

登录后才能评论