文档章节

用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
南京
程序员
私信 提问
使用Apache反向代理解决js跨域请求的一个方案

作为一个对后台知识一知半解的小白,你让我配置后段代码,说实话是真的难为我了,所以,找一个好的解决方案对我这种后台知识一知半解的小白来说是很有必要的,这个方案就是反向代理,这是解决...

缘自世界
2017/05/08
0
0
前端必须懂的计算机网络知识—(跨域、代理、本地存储)

前端必须懂的计算机网络知识系列文章: DNS服务器和跨域问题 计算机网络的分层模型 IP地址和MAC地址 前端必须懂的计算机网络知识—(跨域、代理、本地存储) 前端必须懂的计算机网络知识—(TC...

梦想攻城狮
10/08
0
0
用Nginx和Apache的反向代理解决Ajax的跨域问题

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

HI曲奇饼干
2016/06/10
298
1
apache反向代理tomcat

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

goldfishe
2017/12/16
0
0
nginx反向代理解决跨域问题

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

funnycoderstar
05/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Android 通过DrawableInflater加载自定义Drawable

一、Drawable 在Android系统张,图形图像的绘制需要在画布上进行操作和处理,但是绘制需要了解很多细节以及可能要进行一些复杂的处理,因此系统提供了一个被称之为Drawable的类来进行绘制处理...

IamOkay
4分钟前
0
0
灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

灵活无处安放,所以选择流浪....《漆黑的空间》& 《灰色轨迹》

yizhichao
11分钟前
0
0
Kafka+Flink 实现准实时异常检测系统

1.背景介绍 异常检测可以定义为“基于行动者(人或机器)的行为是否正常作出决策”,这项技术可以应用于非常多的行业中,比如金融场景中做交易检测、贷款检测;工业场景中做生产线预警;安防...

架构师springboot
53分钟前
6
0
DecimalFormat 类基本使用

/* * DecimalFormat 类主要靠 # 和 0 两种占位符号来指定数字长度 * 0 表示如果位数不足则以 0 填充 * # 表示只要有可能就把数字拉上这个位置 * */ public static void main(String[] args){...

嘴角轻扬30
今天
4
0
This APT has Super Cow Powers.

在Debian/Ubuntu上,apt包管理器内嵌着一个彩蛋. 如果你在命令行界面输入 apt help 在最后一行能找到This APT has Super Cow Powers. 说明该apt具有超级牛力 牛力是个什么梗? 则说明你的系统...

taadis
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部