实现跨域名ajax数据获取,有哪些方法?
1个回答
展开全部
Ajax 本身跨域是被浏览器给禁止的
那么要实现不刷新页面的情况下,改变页面内容或取得服务端数据,至少有下面 4 个方法
1.自己搭个服务端代理
这个兼容性最好,特别是目标点不是自己可以操作的情况下,能够自己转化为标准的 js 数据
2.用 Flash 去跨域
这个网上例子就多了,但似乎也需要在目标点配置跨域的文件
3.用 <iframe> 节点载入
src 里填写目标地址,目标地址反馈的是一个完整的 HTML 页面,同时包含 Ajax 的数据
但由于 iframe 跨域操作也有限制,那么主要适合同根域的情况
4.用 <script> 节点载入
如果目标点的数据可以自己来控制,那么这个方法最合适,在需要载入数据的时候,
你可以在页面 new 出一个 script 的节点,可以选择异步操作还是同步操作,可以
在 src 里填写放回数据所要调用的方法名,使得在数据得到时,自动触发某个方法
如果出现莫名的问题
a. 请将请求通过 post 来发送试试 因为浏览器对 post 请求的跨域限制比较少,比如 Safari
b. 你的域名可能太短 这个是我见过的最诡异的问题,未必每个环境都会出现,但你也许能遇上..
时代互联为你解答!
那么要实现不刷新页面的情况下,改变页面内容或取得服务端数据,至少有下面 4 个方法
1.自己搭个服务端代理
这个兼容性最好,特别是目标点不是自己可以操作的情况下,能够自己转化为标准的 js 数据
2.用 Flash 去跨域
这个网上例子就多了,但似乎也需要在目标点配置跨域的文件
3.用 <iframe> 节点载入
src 里填写目标地址,目标地址反馈的是一个完整的 HTML 页面,同时包含 Ajax 的数据
但由于 iframe 跨域操作也有限制,那么主要适合同根域的情况
4.用 <script> 节点载入
如果目标点的数据可以自己来控制,那么这个方法最合适,在需要载入数据的时候,
你可以在页面 new 出一个 script 的节点,可以选择异步操作还是同步操作,可以
在 src 里填写放回数据所要调用的方法名,使得在数据得到时,自动触发某个方法
如果出现莫名的问题
a. 请将请求通过 post 来发送试试 因为浏览器对 post 请求的跨域限制比较少,比如 Safari
b. 你的域名可能太短 这个是我见过的最诡异的问题,未必每个环境都会出现,但你也许能遇上..
时代互联为你解答!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询