ember と Express over node を使用して Web サイトを設計しています。たとえば、サーバーで実行されています:SERVER_1。
SERVER_2など、別のサーバーで実行されているWebサービスはほとんどありません。
あれは:
SERVER_1 の Web サイトと SERVER_2 で利用可能な Web サービス
SERVER_1 はプロキシ サーバーの背後にあります。そして、SERVER_1 から Web サービスにアクセスしようとしています。
SERVER_1 =====[PROXY]===> SERVER_2
SERVER_1 から AJAX Web サービス呼び出しを行うと、次のメッセージが表示されます。
NetworkError: 500 Internal Server Error
ただし、ブラウザから値を正常に取得できます。AJAX コードを介してのみ、Network 500 errorを取得しています。
また、テストのために、プロキシ サーバーのセットアップを削除しました。
SERVER_1 =====> SERVER_2
そして、AJAX コードとブラウザーの両方を介して、これらすべての Web サービスに正常にアクセスできました。
それらの間にプロキシサーバーがある場合:
SERVER_1 =====[PROXY]===> SERVER_2
私は取得しています -- NetworkError: 500 Internal Server Error
プロキシ サーバーの背後で実行されている Web サイトからサードパーティの Web サービスにアクセスする手順を知りたいですか?
追加情報:
クロスドメイン Web サービス アクセスの問題 (あるサーバーで実行されている Web サイトと、異なるポートを持つ別のサーバーで実行されている Web サービス) を既に修正するために、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 を使用してすべての URL のリクエストを処理しています。
これらすべての Web サービスに正常にアクセスできるように、上記のコードでプロキシ サーバーの IP アドレスとポートを構成するにはどうすればよいですか? または、AJAX 呼び出しでプロキシ構成を行う方法はありますか?
誰でも私を案内してもらえますか?
ありがとうございました