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来实现:

server 
    listen       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()方法加载新页面之后怎么返回上一页

nodejs中怎么用jquery的load()加载其他的页面

jquery load加载动态页面

jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案