社区
JavaScript
帖子详情
js跨域Ajax访问数据
xiaowangbing1986
2010-11-19 03:14:46
我想在我们网站上请求其他网站的数据,用AJAX的方式,请问应该如何解决,非(iframe方式)
我试过用Jquery Ajax的Get 方式去请求,但是没数据返回,不知道大家遇到过这样的问题没,都是怎么解决的,在线等。
...全文
267
12
打赏
收藏
js跨域Ajax访问数据
我想在我们网站上请求其他网站的数据,用AJAX的方式,请问应该如何解决,非(iframe方式) 我试过用Jquery Ajax的Get 方式去请求,但是没数据返回,不知道大家遇到过这样的问题没,都是怎么解决的,在线等。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
firebugdotname
2010-11-20
打赏
举报
回复
[Quote=引用 8 楼 wwttqq85538649 的回复:]
跨域的话,数据可以使用json
[/Quote]
希望不要误人子弟 json和跨域一点关系没有。
happy664618843
2010-11-20
打赏
举报
回复
用cookie domin
root_lee
2010-11-20
打赏
举报
回复
后台程序(假设写在a.asp页面中)抓取页面、分析页面、输出结果,ajax请求a.asp
hover_online
2010-11-20
打赏
举报
回复
后台有个抓取的程序,缓存到你本地,再用js解析,前几年的一些阅读器就这样做,认识不深刻,提个思路
wwttqq85538649
2010-11-19
打赏
举报
回复
跨域的话,数据可以使用json
hch126163
2010-11-19
打赏
举报
回复
[Quote=引用 5 楼 kevinwon1985 的回复:]
avascript跨域和Ajax跨域解决方案
ajax跨域和JS的跨域通信(Cross The Site)的几种解决方案
1.什么引起了ajax跨域不能的问题
ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。
2.有什么完美的解决方案么?
没有。解决方案有不少,但是只能是根据自己的实际情况来……
[/Quote]
+1
打字员
2010-11-19
打赏
举报
回复
js不可能的
地狱羔羊
2010-11-19
打赏
举报
回复
avascript跨域和Ajax跨域解决方案
ajax跨域和JS的跨域通信(Cross The Site)的几种解决方案
1.什么引起了ajax跨域不能的问题
ajax本身实际上是通过XMLHttpRequest对象来进行数据的交互,而浏览器出于安全考虑,不允许js代码进行跨域操作,所以会警告。
2.有什么完美的解决方案么?
没有。解决方案有不少,但是只能是根据自己的实际情况来选择。
具体情况有:
一、本域和子域的相互访问: www.aa.com和book.aa.com
二、本域和其他域的相互访问: www.aa.com和www.bb.com 用 iframe
三、本域和其他域的相互访问: www.aa.com和www.bb.com 用 XMLHttpRequest访问代理
四、本域和其他域的相互访问: www.aa.com和www.bb.com 用 JS创建动态脚本
解决方法:
一、如果想做到数据的交互,那么www.aa.com和book.aa.com必须由你来开发才可以。可以将book.aa.com用iframe添加到 www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.domain = "aa.com",这样就可以统一域了,可以实现跨域访问。就和平时同一个域中镶嵌iframe一样,直接调用里面的JS就可以了。(这个办法我没有尝试,不过理论可行)
二、当两个域不同时,如果想相互调用,那么同样需要两个域都是由你来开发才可以。用iframe可以实现数据的互相调用。解决方案就是用window.location对象的hash属性。hash属性就是http://domian/web/a.htm#dshakjdhsjka 里面的#dshakjdhsjka。利用JS改变hash值网页不会刷新,可以这样实现通过JS访问hash值来做到通信。不过除了IE之外其他大部分浏览器只要改变hash就会记录历史,你在前进和后退时就需要处理,非常麻烦。不过再做简单的处理时还是可以用的,具体的代码我再下面有下载。大体的过程是页面a和页面b在不同域下,b通过iframe添加到a里,a通过JS修改iframe的hash值,b里面做一个监听(因为JS只能修改hash,数据是否改变只能由b自己来判断),检测到b的hash值被修改了,得到修改的值,经过处理返回a需要的值,再来修改a的hash值(这个地方要注意,如果a 本身是那种查询页面的话比如http://domian/web/a.aspx?id=3,在b中直接parent.window.location是无法取得数据的,同样报没有权限的错误,需要a把这个传过来,所以也比较麻烦),同样a里面也要做监听,如果hash变化的话就取得返回的数据,再做相应的处理。
三、这种情形是最经常遇到的,也是用的最多的了。就是www.aa.com和www.bb.com你只能修改一个,也就是另外一个是别人的,人家告诉你你要取得数据就访问某某连接参数是什么样子的,最后返回数据是什么格式的。而你需要做的就是在你的域下新建一个网页,让服务器去别人的网站上取得数据,再返回给你。domain1下的a向同域下的GetData.aspx请求数据,GetData.aspx向domain2下的 ResponseData.aspx发送请求,ResponseData.aspx返回数据给GetData.aspx, GetData.aspx再返回给a,这样就完成了一次数据请求。GetData.aspx在其中充当了代理的作用。具体可以看下我的代码。
四、这个和上个的区别就是请求是使用<script>标签来请求的,这个要求也是两个域都是由你来开发才行。原理就是JS文件注入,在本域内的a 内生成一个JS标签,它的SRC指向请求的另外一个域的某个页面b,b返回数据即可,可以直接返回JS的代码。因为script的src属性是可以跨域的。具体看代码,这个也比较简单。
地狱羔羊
2010-11-19
打赏
举报
回复
其他网站那边的人能配合你才行.否则不行
xiaowangbing1986
2010-11-19
打赏
举报
回复
输出的就是普通的文字信息,就是不能现在后台才来求助的。能写在后台的话就不用这么麻烦了。
yhtapmys
2010-11-19
打赏
举报
回复
路过 学习 友情UP
Mr-Jee
2010-11-19
打赏
举报
回复
又是跨域啊~
什么样的数据呢
其他的网站的话 我建议你还是通过后台来读然后解析吧
script的src是可以跨域的,但是使用非常受限。
iframe当然不是一个好的解决方案。
Ajax
跨域
传输参数
可以将book.aa.com用iframe添加到 www.aa.com的某个页面下,在www.aa.com和iframe里面都加上document.domain = "aa.com",这样就可以统一域了,可以实现
跨域
访问
。就和平时同一个域中镶嵌iframe一样,直接调用里面的...
关于C#中
ajax
跨域
访问
问题
最近因项目需要,需要
跨域
请求
访问
数据
。
跨域
访问
是指什么? [
跨域
]:指的是浏览器不能执行其他网站的脚本。它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。所谓同域是指,域名,协议,端口均...
ajax
跨域
请求
js
拒绝
访问
的解决方法
求解决办法 代码如下:
ajax
{ url :“http://xxxx/app”, type:... 您可能感兴趣的文章:
跨域
请求之jQuery的
ajax
js
onp的使用解惑
AJAX
跨域
请求
js
on
数据
的实现方法jQuery.
ajax
跨域
请求webapi设置headers的解决方案JQuer
ajax
跨域
访问
遇到的问题及解决方案
比如我们用
Ajax
访问
城市天气预报、IP地址等公共服务接口时,就涉及
跨域
了。我们请求一个外部服务时,浏览器会基于安全问题拒绝授权
访问
。 而script、script、iframe标签的src属性就不存在
跨域
的问题,所以
Ajax
跨域
...
jquery的
ajax
和get
Js
on
跨域
获取
js
on
数据
的实现方法
很多开发人员在使用jquery在前端和服务器端进行
数据
交互,所以很容易会认为在前端...1、通过jQuery的
ajax
进行
跨域
,这其实是采用的
js
onp的方式来实现的。
js
onp是英文
js
on with padding的缩写。它允许在服务器端生成
JavaScript
87,910
社区成员
224,616
社区内容
发帖
与我相关
我的任务
JavaScript
Web 开发 JavaScript
复制链接
扫一扫
分享
社区描述
Web 开发 JavaScript
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章