文档章节

利用nodejs中http-server组件的proxy参数来联调前端和后端

Jason_hu
 Jason_hu
发布于 2015/04/15 12:11
字数 576
阅读 157
收藏 0

在开发项目的过程中,我们的框架是这样的。

1、client项目,采用angularjs+bootstrap开发,主要是html+css+javascript代码; 2、server项目,主要采用java的springmvc框架开发,提供基于http的json数据格式api;

client端工程师写好代码后,会需要和server端程序联调,这个时候,client的代码在本地,而server的测试环境部署在某个test服务器,一般我们会将client的目录托管在一个本地的httpserver来运行,很多html的编辑器都支持这个能力,譬如nodejs的http-server,idea编辑器等;

但是这个时候会涉及到一个跨域请求的问题,一般情况下:

这样,如果client的网页,需要访问server的地址的时候,浏览器缺省是禁止访问的。

http-server

http-server是nodejs框架中的一个工具,本身是使用javascript编写的,当我们安装好nodejs之后,并配置好cnpm(必须配置,否则npm下载包太慢并容易断)。

安装http-server

cnpm install http-server -g

启动,带-P参数

http-server -P "http://testserver"
Starting up http-server, serving ./ on: http://0.0.0.0:8080
Unhandled requests will be served from: http://testserver
Hit CTRL-C to stop the server

P参数的目的,是当http-server发现请求地址本地不存在的时候,会将该请求的URI转发给另外一个web服务器处理,收到结果后,以本地服务器来响应给请求方,以达到proxy代理的目的。

测试

先准备一个server端java的测试api,地址为:http://testserver/api/test.json

curl "http://testserver/api/test.json?id=1003&msg=测试http-server的代理"
{"ret":0,"data":"测试http-server的代理:1003, now time is 1429069220655."}

再准备一个client测试文件test.html,地址为:http://localhost:8080/test.html

<!DOCTYPE html>
<html>
<head>
    <title>Hello jQuery</title>
    <script src="http://apps.bdimg.com/libs/jquery/1.11.1/jquery.js"></script>
    <script>
        $(document).ready(function() {
            $.ajax({
                url: "/api/test.json?id=1003&msg=测试http-server的代理"
            }).then(function(data, status, jqxhr) {
                console.log(data);
                $('.test-id').append(data.ret);
                $('.test-data').append(data.data);
                console.log(jqxhr);
            });
        });
    </script>
</head>

<body>
<div>
    <p class="test-id">The ret is </p>
    <p class="test-data">The data is </p>
</div>
<h4>Response headers:</h4>
<div class="response-headers">
</div>
</body>
</html>

运行:

http-server -P "http://testserver"

启动浏览器,访问网页地址: http://localhost:8080/test.html 会看到如下结果: 在此输入图片描述

© 著作权归作者所有

共有 人打赏支持
Jason_hu
粉丝 8
博文 20
码字总数 9638
作品 0
浦东
私信 提问
谁说前端需要懂 Nginx 了?

--读《谁说前端不需要懂-Nginx反向代理与负载均衡》有感 读了上文发现内容虽然还是挺好的,但看完,为啥要懂nginx呀,负载均衡和前端哪里有什么半毛钱关系了,没说清楚呀。 当然这个面向前端...

vellengs
06/22
0
0
深入浅出Node.js(四):Node.js的事件机制

Node.js的事件机制 Node.js在其Github代码仓库(https://github.com/joyent/node)上有着一句短短的介绍:Evented I/O for V8 JavaScript。这句近似广告语的句子却道尽了Node.js自身的特色所...

leeldy
2012/10/25
0
0
实现前后端分离的心得

原文出处:陈陈jg 实现前后端分离的心得 对目前的web来说,前后端分离已经变得越来越流行了,越来越多的企业/网站都开始往这个方向靠拢。那么,为什么要选择前后端分离呢?前后端分离对实际开...

陈陈jg
2017/07/02
0
0
【深入浅出Node.js系列四】Node.js的事件机制

深入浅出Node.js系列 【深入浅出Node.js系列一】什么是Node.js 【深入浅出Node.js系列二】Node.js&NPM的安装与配置 【深入浅出Node.js系列三】深入Node.js的模块机制 【深入浅出Node.js系列四...

陶邦仁
2016/01/08
226
0
用Next.js快速上手React服务器渲染

新前端时代的服务端渲染也提了很久了,各种技术演进层出不穷。 带你领略一下基于React和Nodejs架构的服务端渲染技术,让你快速上手,开发Next服务端渲染的项目。 本文参考官方文档,做精简总...

方宏春
09/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

MicroStation Developer Shell

REG ADD HKLM\SOFTWARE\Microsoft\VisualStudio\8.0\Setup\VS /v ProductDir /t REG_SZ /d "C:\Program Files (x86)\Microsoft Visual Studio 8\VC\" /reg:32 CALL "C:\Program Files (x86)\......

oready
10分钟前
1
0
CURL常用命令

下载单个文件,默认将输出打印到标准输出中(STDOUT)中 curl http://www.centos.org 通过-o/-O选项保存下载的文件到指定的文件中: -o:将文件保存为命令行中指定的文件名的文件中 -O:使用U...

SuShine
15分钟前
1
0
docker搞个wordpress

1.先把wordpress的镜像下载下来 docker pull wordpress 2.下载mysql docker pull mysql:lastest 3.启动mysql docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:t......

无极之岚
26分钟前
2
0
【宇润日常疯测-005】PHP 中的 clone 和 new 性能比较

clone和new本不应该放在一起比较,它们的作用是不同的。但可能有一些场景下,可以用clone也可以用new,那么这时候我们选哪个呢? 我编写了两个测试,第一个是声明一个空类,第二个是带构造方...

宇润
27分钟前
2
1
点击按钮弹出类似IOS 底部 dialog

implementation 'com.baoyz.actionsheet:library:1.1.7' 然后设置按钮点击监听,,调用下列代码即可 ActionSheet.createBuilder(this, getSupportFragmentManager()) ......

lanyu96
30分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部