从代理服务器后面的网站访问Web服务

 一生的牵扯 发布于 2023-02-13 14:46

我正在使用ember和express over node设计一个网站.它在服务器中运行,例如:SERVER_1.

我在另一台服务器上运行的web服务很少,比如说:SERVER_2.

那是:

SERVER_1中的网站和SERVER_2中提供的Web服务

SERVER_1位于代理服务器后面.我试图从SERVER_1访问webservices:

SERVER_1 =====[PROXY]===> SERVER_2

当我从SERVER_1进行AJAX webservice调用时,我收到:

NetworkError: 500 Internal Server Error

但是,我能够通过浏览器成功检索值.只有通过AJAX代码,我才检索到网络500错误.

另外,为了测试,我删除了我的代理服务器设置:

SERVER_1 =====> SERVER_2

我能够通过AJAX代码和浏览器成功访问所有这些Web服务.

如果我之间有代理服务器:

SERVER_1 =====[PROXY]===> SERVER_2

我收到了 - NetworkError:500内部服务器错误

我想知道从代理服务器后面运行的网站访问第三方Web服务的过程?

附加信息:

已经修复跨域Web服务访问问题(在一个服务器上运行的网站和在不同端口的其他一些服务器上运行的webservices),我使用的是http-proxy npm,我的代码如下:

var express = require('express');
var routes = require('./routes');
var http = require('http');
var path = require('path');
var httpProxy = require('http-proxy');
var endpoint  = {
    host:   'IP_ADDRESS_WHERE_MY_WEBSERVICES_RUN',
    port:   80,
    prefix: '/api'
}

var proxy = new httpProxy.RoutingProxy();
var app = express();

app.set('port', process.env.PORT || 3000);
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'ejs');
app.use(express.favicon());
app.use(express.logger('dev'));
app.use(express.methodOverride());
app.use(express.cookieParser('xxxxx'));
app.use(express.session());
app.use(app.router);
app.use(express.static(path.join(__dirname, 'public')));
app.use(function(req, res) {
    if (req.url.indexOf(endpoint.prefix) === 0) {
        proxy.proxyRequest(req, res, endpoint);
    }
});
app.use(express.bodyParser());

if ('development' == app.get('env')) {
    app.use(express.errorHandler());
}
app.get('/', routes.index);

http.createServer(app).listen(app.get('port'), function(){
    console.log('Express server listening on port ' + app.get('port'));
});

我的AJAX电话:

$.ajax({
            type: 'GET',
            async: false,
            url: 'API_URL',
            success: function (data) {
                alert('success');
            },
            failure: function(error){
                alert('error');
            }
        });

我已经使用http-proxy来处理所有网址的请求.

如何在上面的代码中配置我的代理服务器的IP地址和端口,以便我可以成功访问所有这些Web服务?或者有没有办法在AJAX调用中使用我的代理配置?

有人可以指导我吗?

谢谢

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有