文档章节

用apache反向代理解决快递100跨域问题

mucoding
 mucoding
发布于 2017/04/23 22:54
字数 563
阅读 22
收藏 0

1.缘由:做一个调用接口的测试,发现不管怎么调用http://www.kuaidi100.com/query这个接口都会产生跨域,有时候还能获取到数据 2.在FCC群里请教各位基佬的时候,有一个老哥提出了用nginx代理解决跨域问题

3于是我首先恶补了下解决跨域的几个方法以及跨域的原因

这里简单介绍一下反向代理:如下图所示,用户A一直使用原始服务器B的资源,但是用户A始终认为它访问的是原始服务器B而不是代理服务器Z,但实用际上反向代理服务器接受用户A的应答,从原始资源服务器B中取得用户A的需求资源,然后发送给用户A。由于防火墙的作用,只允许代理服务器Z访问原始资源服务器B。尽管在这个虚拟的环境下,防火墙和反向代理的共同作用保护了原始资源服务器B,但用户A并不知情。

这里说的js跨域是指通过js在不同的域之间进行数据传输或通信,比如用ajax向一个不同的域请求数据,或者通过js获取页面中不同域的框架中(iframe)的数据。只要协议、域名、端口有任何一个不同,都被当作是不同的域。

js跨域解决方案 a.通过jsonp跨域 b.通过修改document.domain来跨子域 c.使用window.name来进行跨域 d.使用HTML5中新引进的window.postMessage方法来跨域传送数据

ajax跨域大同小异,这只是我的一些愚见 有不对的地方 请以wiki的解释为准

我这里采用apache 反向代理

<VirtualHost *:8082>
 ProxyRequests Off

    <Proxy *>
      Order deny,allow
      Allow from all
    </Proxy>
    ProxyPass /query http://www.kuaidi100.com/query
 
</VirtualHost>

请求如下

 $("#submit1").click(function() {

         var cp = $("#cp").find("option:selected").val();
         var cpd = $('#cpd')[0].value;
         var exprssurl = "http://127.0.0.1:8082/query?type=" + cp + "&postid=" + cpd;
         $.getJSON(exprssurl, function(data) {

             var obj = document.getElementById('content1');
             var ex = data;
             var text = [];

             text.push("快递单号: " + data.nu);
             text.push("快递详情: " + data.message);
             text.push("快递公司: " + data.com);
             text.push("其他: " + data.data);
             obj.innerText = text.join("\n ")


         });

© 著作权归作者所有

共有 人打赏支持
mucoding
粉丝 0
博文 35
码字总数 5744
作品 0
南京
程序员
nginx反向代理解决跨域问题

nginx的作用 1.代理 2.web静态服务器 代理(proxy) 允许一个网络终端(一般为客户端),通过这个服务于另一个网络终端(一般为服务器)进行非直接的连接;提供代理服务的电脑系统或其他类型的网络终...

funnycoderstar
05/08
0
0
apache反向代理tomcat

最近,为了解决前端网页跨域的问题,我们采用了apache反向代理tomcat的方案。apache反向代理主要是利用proxy_mod模块。以下贴出部分配置文件我是在apache的虚拟主机里配置的 ServerAdmin pr...

goldfishe
2017/12/16
0
0
用Nginx和Apache的反向代理解决Ajax的跨域问题

概述 Ajax开发中令人头疼的问题之一是跨域问题。在服务器端来说,我们常用的手段之一就是利用Nginx或者Apache的反向代理功能。 傲游主站上有一个很吸引人的功能,就是下载次数计数,如下图所...

HI曲奇饼干
2016/06/10
298
1
前后端分离--拿起node反向代理的武器(全记录)

做个勇往直前的人,做个勇往直前的前端 文/ziven 标题图/来自网络 前后端分离是个很重要的概念,尤其是今天的大前端时代。jsp,html嵌套在java web项目中似乎显得比较古老而厚重。当我们处在...

ziven先生
2017/06/28
0
0
jsonp-反向代理-CORS解决JS跨域问题的个人总结(更新 v2.0)

网上说了很多很多,但是看完之后还是很混乱,所以我自己重新总结一下。 解决 js 跨域问题一共有8种方法: jsonp(只支持 get) 反向代理 CORS document.domain + iframe 跨域 window.name + ...

线上猛如虎_线下怂如鼠
08/18
0
0

没有更多内容

加载失败,请刷新页面

加载更多

记一次winserver2003系统,https无法访问,内存占用持续增加,解决办法

先交代一下环境: win server2003系统,系统装在hyper-v虚拟机里 大概2016年底的镜像,距离今天两年左右 病症:大概9月10号左右用这个镜像还可以访问https,但是今天用这个镜像新装的系统,就...

阳阳露
20分钟前
2
0
jdbc连接orcal数据库

import java.sql.Connection;  import java.sql.DriverManager;  import java.sql.ResultSet;  import java.sql.SQLException;  import java.sql.Statement;    ......

小橙子的曼曼
45分钟前
0
0
Vue学习资料

一直以为Vue是依赖nodejs的。 作为前端也可以耦合性就很低了。 //npm包管理器 进行管理npm install vue//初始化一个项目vue init//本地调试npm run dev//编译完成 ...

大灰狼wow
54分钟前
1
0
fullcalendar重新渲染

uiCalendarConfig.calendars.lesson_calendar.fullCalendar('removeEvents');var ym = uiCalendarConfig.calendars.lesson_calendar.fullCalendar('getView').title;$scope.get_lesson(y......

人来疯啊
59分钟前
1
0
多渠道打包总结

https://www.jianshu.com/p/2130db7584c8 https://blog.csdn.net/u011153817/article/details/50772496...

塔塔米
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部