jquery load()怎么解决跨域加载页面 比如$("#id").load("www.demo.com/?ct=index&ac=index") 谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery load()怎么解决跨域加载页面 比如$("#id").load("www.demo.com/?ct=index&ac=index") 谢相关的知识,希望对你有一定的参考价值。
通常解决跨域问题有两个方案,一是通过iframe,而是通过HTTP和反向代理服务器(诸如Apache、nginx等)。
由于iframe在在灵活性,样式、dom选取上存在各种各样的问题,因此我不推荐选用iframe。下面主要介绍通过反向代理解决这个问题的方法。
在诸多反向代理服务器中nginx以占用内存小,并发性能好著称,这里我们以nginx为例:
假设我们开发项目的域名为www.test.com,它想引入www.target.com中的某个部分。
如果我们直接写$("#id").load("www.target.com/?ct=index&ac=index")会有跨域警告,那么这时候我们可以换个方式。写成$("#id").load("www.test.com/to_target/?ct=index&ac=index")这样就不会有跨域问题了,下面的问题就是如何让/to_target指向target.com。这个要借助nginx来实现:
serverlisten 80;
server_name
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Referer $http_referer;
#将/to_target/目录下的链接全部转发到www.target.com服务器上
location /to_target/
proxy_pass
#配置www.test.com的服务器地址与端口号
location /
proxy_pass
如果比使用的是Apache的话那么原理是一样的,配置上仿照上面修改即可
参考技术A 可以使用,得部署到服务器上去,用静态页面做由于游览器限制不会成功。 参考技术B 可以啊~这样就可以了~你传的这个是json还是什么啊?追问我在a.com下load另一个c.com下的页面,不能跨域啊,怎么弄
追答哦~这个是ajax的~不能跨域,你传过来的这个是什么啊?JSON还是网页啊?用这对标签就行了~网页里面只有它和iframe能跨域~但是iframe不好用~所以用script吧~
追问json是不会用load()来做的,所以传过来的是页面.load()在谷歌下可以跨域加载页面的,就是IE下不行...用,咋弄呢
追答用引用外部文件不就行了~
参考技术C 如果非要静态页面调用的话 建议使用jquery操作iframe对象, 动态添加src属性来加载页面。这样就可以实现你需要的功能,不明白的地方可以追问,望采纳..追问但我要在后台处理,与数据库交互,网上的很少有这样的问题反馈
追答那你可以用jquer获取页面内容,然后在后台解析网页内容,然后获取相关的信息对数据库操作
以上是关于jquery load()怎么解决跨域加载页面 比如$("#id").load("www.demo.com/?ct=index&ac=index") 谢的主要内容,如果未能解决你的问题,请参考以下文章
怎么解决jquery 中 load 事件重复载入js的问题?
jQuery中的ajaxjquery中ajax全局事件load实现页面无刷新局部加载ajax跨域请求jsonp利用formData对象向服务端异步发送二进制数据
页面用jquery的load()方法加载新页面之后怎么返回上一页