文档章节

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

mucoding
 mucoding
发布于 2017/04/23 22:54
字数 563
阅读 20
收藏 0
点赞 0
评论 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反向代理tomcat

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

goldfishe ⋅ 2017/12/16 ⋅ 0

用Nginx和Apache的反向代理解决Ajax的跨域问题

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

HI曲奇饼干 ⋅ 2016/06/10 ⋅ 1

nginx反向代理解决跨域问题

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

funnycoderstar ⋅ 05/08 ⋅ 0

如何解决js跨域问题

如何解决js跨域问题 Js跨域问题是web开发人员最常碰到的一个问题之一。所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下 的数据对象,出于安全性考 虑,几乎所有浏览器都不允...

spademan ⋅ 2013/10/17 ⋅ 0

解决js跨域问题

如何解决js跨域问题 Js跨域问题是web开发人员最常碰到的一个问题之一。所谓js跨域问题,是指在一个域下的页面中通过js访问另一个不同域下 的数据对象,出于安全性考 虑,几乎所有浏览器都不允...

老先生二号 ⋅ 2017/08/27 ⋅ 0

前后端分离--拿起node反向代理的武器(全记录)

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

ziven先生 ⋅ 2017/06/28 ⋅ 0

跨域解决方案之nginx

大家好,我是IT修真院北京总院第24期的学员,一枚正直纯洁善良的web程序员 今天给大家分享一下,修真院官网js任务5,深度思考中的知识点——跨域解决方案之nginx 1.背景介绍 什么是跨域以及产...

我是一只北极熊啊 ⋅ 2017/09/23 ⋅ 0

深入跨域问题(4) - 利用代理解决跨域

阅读目录 深入跨域问题(1) - 初识 CORS 跨域资源共享; 深入跨域问题(2) - 利用 CORS 解决跨域 深入跨域问题(3) - 利用 JSONP 解决跨域 深入跨域问题(4) - 利用 代理服务器 解决跨域(本篇)...

leiting1998 ⋅ 05/17 ⋅ 0

跨域问题的解决办法

跨域 什么是跨域 跨域是由浏览器的同源策源产生的,是指页面请求的接口地址,必须与页面的url地址处于同域上(即域名、端口、协议相同)。这是为了防止某域名下面的接口,被其他域名下的网页...

BrightLD的博客 ⋅ 2017/12/11 ⋅ 0

Nginx 解决浏览器 Ajax 跨域问题

跨域是指 host 为 A 页面中的 Ajax 发起指向 host B 的请求,只要 A 和 B 的协议、域名、端口、子域名其中任何一项不同,则执行的访问都会被认为是跨域的请求,几乎所有的浏览器为了安全等问...

摆码王子 ⋅ 04/16 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

vim编辑模式、命令模式

编辑模式 vim要从一般模式进入编辑模式只要按字母 i 、I、a、A、o、O键就可以了 要从编辑模式回到一般模式按键盘上的Esc键即可。 按键 作用 i 在当前字符前插入 I 在光标所在行的行首插入 o ...

黄昏残影 ⋅ 25分钟前 ⋅ 0

OSChina 周五乱弹 —— 如果有一天不当程序员了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @guanglun :分享off的单曲《我唱情歌给你听》 《我唱情歌给你听》- off 手机党少年们想听歌,请使劲儿戳(这里) @小小编辑 :#如果不做程序...

小小编辑 ⋅ 31分钟前 ⋅ 4

从 Confluence 5.3 及其早期版本中恢复空间

如果你需要从 Confluence 5.3 及其早期版本中的导出文件恢复到晚于 Confluence 5.3 的 Confluence 中的话。你可以使用临时的 Confluence 空间安装,然后将这个 Confluence 安装实例升级到你现...

honeymose ⋅ 今天 ⋅ 0

Java8新增的DateTimeFormatter与SimpleDateFormat的区别

两者最大的区别是,Java8的DateTimeFormatter也是线程安全的,而SimpleDateFormat并不是线程安全。 在并发环境下使用SimpleDateFormat 为了能够在多线程环境下使用SimpleDateFormat,有这三种...

人觉非常君 ⋅ 今天 ⋅ 0

多线程如何控制执行顺序

线程的生命周期说明: 当线程被创建并启动以后,它既不是一启动就进入了执行状态,也不是一直处于执行状态,在线程的生命周期中,它要经过新建(New)、就绪(Runnable)、运行(Running)、...

MarinJ_Shao ⋅ 今天 ⋅ 0

用ZBLOG2.3博客写读书笔记网站能创造今日头条的辉煌吗?

最近两年,著名的自媒体网站今日头条可以说是火得一塌糊涂,虽然从目前来看也遇到了一点瓶颈,毕竟发展到了一定的规模,继续增长就更加难了,但如今的今日头条规模和流量已经非常大了。 我们...

原创小博客 ⋅ 今天 ⋅ 0

MyBatis四大核心概念

本文讲解 MyBatis 四大核心概念(SqlSessionFactoryBuilder、SqlSessionFactory、SqlSession、Mapper)。 MyBatis 作为互联网数据库映射工具界的“上古神器”,训有四大“神兽”,谓之:Sql...

waylau ⋅ 今天 ⋅ 0

以太坊java开发包web3j简介

web3j(org.web3j)是Java版本的以太坊JSON RPC接口协议封装实现,如果需要将你的Java应用或安卓应用接入以太坊,或者希望用java开发一个钱包应用,那么用web3j就对了。 web3j的功能相当完整...

汇智网教程 ⋅ 今天 ⋅ 0

2个线程交替打印100以内的数字

重点提示: 线程的本质上只是一个壳子,真正的逻辑其实在“竞态条件”中。 举个例子,比如本题中的打印,那么在竞态条件中,我只需要一个方法即可; 假如我的需求是2个线程,一个+1,一个-1,...

Germmy ⋅ 今天 ⋅ 0

Django第一期

安装Django 去https://www.djangoproject.com/download/ 下载最新版的Django,然后解压放到Anaconda\Lib\site-packages目录下,然后cmd进入此目录,输入安装命令: python setup.py install ...

大不了敲一辈子代码 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部