使用nodejs中httpProxy代理时候出现404异常的解决方法
在公司中使用nodejs构建代理服务器实现前后台分离,代码不能拿出来,然后出现httpProxy代理资源的时候老是出现404.明明被代理的接口是存在的。代码大概如下:
var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); var server = http.createServer(function(req, res) { proxy.web(req, res, { target: 'http://www.cnblogs.com/xiaopen/' }); }); console.log("listening on port 5050") server.listen(5050);
然后报错或者是404错误码。
解决方案:
在代理请求中,把请求头中的host给删除,改进代码如下:
var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); var server = http.createServer(function(req, res) { delete req.headers.host; proxy.web(req, res, { target: 'http://www.cnblogs.com/xiaopen/' }); }); console.log("listening on port 5050") server.listen(5050);
然后如期运行正确。
以上这篇使用nodejs中httpProxy代理时候出现404异常的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
NodeJS学习笔记之Http模块
一,开篇分析 首先"Http"这个概念大家应该比较熟悉了,它不是基于特定语言的,是一个通用的应用层协议,不同语言有不同的实现细节,但是万变不离其宗,思想是相同的, NodeJS作为一个宿主运行环境,以JavaScript为宿主语言,它也有自己实现的一套标准,这篇文章我们就一起来学习一下 "Http模块" .但是作为前提来说, 希望大家可以先阅读一下官网提供的api,有一个前置了解,这样就方便多了,以下是Http部分的api概览: 复制代码 代码如下: HTTP
-
使用nodejs、Python写的一个简易HTTP静态文件服务器
日常开发过程中,我们经常需要修改一些放在 CDN 上的静态文件(如 JavaScript.CSS.HTML 文件等),这个过程中,我们希望能有一种方式将线上 CDN 的目录映射为本地硬盘上的某个目录,这样,当我们在本地修改了某个文件时,不需要发布,刷新后马上能看到效果. 比如,我们的 CDN 域名是:http://a.mycdn.com,本地对应的目录是:D:\workassets,我们希望所有对 http://a.mycdn.com/* 的访问被映射到本地的 D:\workassets\* 下
-
详解nodejs中的process进程
虽然node对操作系统做了很多抽象的工作,但是你还是可以直接和他交互,比如和系统中已经存在的进程进行交互,创建工作子进程.node是一个用于事件循环的线程,但是你可以在这个事件循环之外创建其他的进程(线程)参与工作. 进程模块 process模块允许你获得或者修改当前node进程的设置,不想其他的模块,process是一个全局进程(node主进程),你可以直接通过process变量直接访问它. process实现了EventEmitter接口,exit方法会在当进程退出的时候执行.因为进程退出之
-
nodejs实现HTTPS发起POST请求
准备用nodejs搞一个快速注册163邮箱的东西,需要在某一步的时候post数据到https,node的官方文档实在太简陋了,网上找了个差不多的例子,拿来改了改用. var util = require('util'), https = require('https'); var regUrl = "https://ssl.mail.163.com/regall/unireg/call.do;jsessionid=%s?cmd=register.start&adapter=%s&
-
Nodejs极简入门教程(二):定时器
setTimeout 和 clearTimeout 复制代码 代码如下: var obj = setTimeout(cb, ms); setTimeout 用于设置一个回调函数 cb,其在最少 ms 毫秒后被执行(并非在 ms 毫秒后马上执行).setTimeout 返回值可以作为 clearTimeout 的参数,clearTimeout 用于停止定时器,这样回调函数就不会被执行了. setInterval 和 clearInterval 复制代码 代码如下: var obj = setInt
-
使用nodejs中httpProxy代理时候出现404异常的解决方法
在公司中使用nodejs构建代理服务器实现前后台分离,代码不能拿出来,然后出现httpProxy代理资源的时候老是出现404.明明被代理的接口是存在的.代码大概如下: var http = require('http'), httpProxy = require('http-proxy'); var proxy = httpProxy.createProxyServer({}); var server = http.createServer(function(req, res) { proxy.
-
JQuery中使用Ajax赋值给全局变量异常的解决方法
我们在用JQuery的Ajax从后台提取数据后想把它赋值给全局变量,但是却怎么都赋不进,为什么呢? 原因其实很简单,我们用的Ajax是异步操作,也就是说在你赋值的时候数据还没提取出来,你当然赋不进去,所以只要改成同步操作就行~ 方法1:先设置同步在进行Ajax操作 复制代码 代码如下: //在全局或某个需要的函数内设置Ajax异步为false,也就是同步$.ajaxSetup({ async : false }); //然后再进行你的Ajax操作$.post(地址, 参数, functi
-
nodejs中使用worker_threads来创建新的线程的方法
简介 之前的文章中提到了,nodejs中有两种线程,一种是event loop用来相应用户的请求和处理各种callback.另一种就是worker pool用来处理各种耗时操作. nodejs的官网提到了一个能够使用nodejs本地woker pool的lib叫做webworker-threads. 可惜的是webworker-threads的最后一次更新还是在2年前,而在最新的nodejs 12中,根本无法使用. 而webworker-threads的作者则推荐了一个新的lib叫做web-wo
-
PHP(FastCGI)在Nginx的alias下出现404错误的解决方法
本文讲述了PHP(FastCGI)在Nginx的alias下出现404错误的解决方法.分享给大家供大家参考,具体如下: 在Nginx的官方wiki中如下描述 The alias directive cannot be used inside a regex-specified location. If you need to do this you must use a combination of rewrite and root. 在实际使用中alias下面的php返回404,而html确可
-
Spring WebSocket 404错误的解决方法
近来学习 Spring WebSocket 时按照 Spring IN ACTION 中示例编写代码,运行时浏览器报404 错误 WebSocket connection to 'ws://localhost/websocket/marco' failed: Error during WebSocket handshake: Unexpected response code: 404 按照 Spring IN ACTION 中步骤: 首先,继承 AbstractWebSocketHandler,
-
Vue.js 中 axios 跨域访问错误问题及解决方法
1.假如访问的接口地址为 http://www.test.com/apis/index.php (php api 接口) 2.而开发地址为http://127.0.0.1:8080,当axios发起请求时,出现如下错误: Failed to load http://www.test.com/apis/index.php?&act=login: The value of the 'Access-Control-Allow-Origin' headerin the response must no
-
Cygwin下安装vim后,vim中退格键无法正常使用的解决方法
问题描述: 在Cygwin中安装完vim后 进入vim,发现上下左右键和退格键都无法正常使用 问题分析: 首先考虑到的就是缺少vim的配置文件,首先查看/etc路径下是否有vim的配置文件 admin@ThinkPad /etc $ cd /etc admin@ThinkPad /etc $ ls -a|grep vimrc发现/etc下没有vim的全局配置文件,然后再查找当前用户的vim配置文件.vimrc admin@ThinkPad /etc $ cd ~ admin@ThinkPad ~
-
MySQL中Union子句不支持order by的解决方法
本文实例讲述了MySQL中Union子句不支持order by的解决方法.分享给大家供大家参考,具体如下: 我对DB知之甚少,这问题只在MySQL遇到,不知道别的DBMS是不是也如此. 问题是这样的,我打算在一个表里获得与某一行记录相邻的两行,并且想通过union一起取出来,所以这么写: select id,title from subjects where id>#some_id# order by id limit 1 union select id,title from subjects
-
JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法
本文实例讲述了JS在Chrome浏览器中showModalDialog函数返回值为undefined的解决方法.分享给大家供大家参考,具体如下: 主页面: <script type="text/javascript"> function SelectGroupCust() { var temp = window.showModalDialog("Default2.aspx?xx=" + Date(), "", "dialog
-
IE8中动态创建script标签onload无效的解决方法
本文实例讲述了IE8中动态创建script标签onload无效的解决方法.分享给大家供大家参考.具体分析如下: 今天做项目,发现一个奇怪的问题,动态创建的script标签在IE8下无法触发onload事件. 代码如下: 复制代码 代码如下: var loadJs = function(src, fun){ var script = null; script = document.createElement("script"); script.type = &qu
随机推荐
- Linux中执行shell脚本的4种方法总结
- 原来CSS里的 !important 是如此用法
- Access数据库提示OleDbException (0x80004005): 操作必须使用一个可更新的查询
- 如何理解Vue的render函数的具体用法
- Java ArrayList 数组之间相互转换
- jquery之empty()与remove()区别说明
- Zend Framework入门知识点小结
- c语言printf函数的使用详解
- JavaScript编写的网页小游戏,很给力
- js渐变显示渐变消失示例代码
- linux URL的301重定向代码分析
- jQuery队列操作方法实例
- C# 实现阶乘 (递归,非递归) 实现代码
- Android 蓝牙自动匹配PIN码跳过用户交互示例
- SQL中object_id函数的用法
- win2008 R2 下 IIS7.5+PHP5.2.17+Mysql5.5.16+Zend3.3.3
- node.js中的fs.statSync方法使用说明
- 电子技术中常用符号及术语
- Android+SQLite数据库实现的生词记事本功能实例
- 学习使用Bootstrap页面排版样式