Я разрабатываю веб-сайт с использованием ember и express over node. Он работает на сервере, скажем: SERVER_1.Доступ к веб-сервисам с веб-сайта, который работает за прокси
У меня есть несколько веб-сервисов, работающих на другом сервере, скажем: SERVER_2.
То есть:
сайт в SERVER_1 и веб-сервисов, доступных в Server_2
SERVER_1 находится за прокси-сервером. И я пытаюсь получить доступ к веб-сервисы от SERVER_1:
SERVER_1 =====[PROXY]===> SERVER_2
Когда я делаю AJAX веб-сервиса звонки от SERVER_1, я получаю:
NetworkError: 500 Internal Server Error
Однако, я могу получить значения успешно через браузер. Только через код AJAX я извлекаю Ошибка сети 500.
Кроме того, для тестирования, я удалил мою Настройку прокси-сервера:
SERVER_1 =====> SERVER_2
, и я был в состоянии получить доступ ко всей этой веб-службе успешно и с помощью AJAX коды и браузера.
Если у меня есть прокси-сервер между ними:
SERVER_1 =====[PROXY]===> SERVER_2
я получаю - NetworkError: 500 Внутренняя ошибка сервера
Я хотел бы знать процедуры для доступа к третьей стороне веб-сервисы с веб-сайта, который работает за прокси-сервером?
Дополнительная информация:
Уже исправить междоменное проблему доступа к веб-сервис (веб-сайт работает на одном сервере и веб-сервисы, работающие в некоторых других разных серверах с разными портами), я использую HTTP-прокси НПМ и мой код выглядит следующим образом:
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 для обработки запроса всего URL-адреса.
Как настроить IP-адрес и порт моего прокси-сервера в приведенном выше коде, чтобы я мог получить доступ ко всем этим веб-службам успешно? Или есть какой-то способ настроить мои прокси-конфигурации в вызове AJAX?
Может ли кто-нибудь направить меня?
Спасибо
Как об использовании [прямой прокси] (HTTPS: //github.com/nodejitsu/node-http-proxy#proxy-requests-with-an-additional-forward-proxy)? –
Многие объекты в Node.js не выбрасывают ошибку, а вместо этого вызывают события 'error'. Просто слушайте событие ошибки и 'console.log', чтобы мы знали, что происходит. –
Я пробовал с прокси-сервером. Однако это мне не помогло. Можете ли вы направить меня? –