0
私は反応アプリケーションで作業しています。私はモジュールhttp-proxy-middlewareを使ってプロキシを設定しました。プロキシサーバーのAPIを呼び出すと、WebサイトのURLが追加されるのはなぜですか
フラグページでは、ウェブサイトURLは// localhost:9000/flags/allのようになります。
ユーザーがフラグページのボタンをクリックすると、sparkle(rest service)APIを呼び出して結果をロードする必要があります。私がスパークルAPIを呼び出すと、内部的にウェブサイトのURLも追加され、// SGD01D:10700/sparkle/flagsの代わりにhttp://SGD01D:10700/all/sparkle/flagsのようにapi呼び出しが形成されます。なぜ「すべて」がAPIコールに追加されているのですか?この問題の解決方法
//server
app.use('/sparkle', proxy(proxies.sparkle_config()));
//Proxy config
class proxies {
static sparkle_config() {
return {
target: 'http://SGD01D:10700', // target host
changeOrigin: true // needed for virtual hosted sites
};
}
}
export default proxies;
//React action
//redux-thunk
export function loadFlags() {
return function(dispatch) {
dispatch(beginAjaxCall());
const promise = axios({url: 'sparkle/v1/api/flag', timeout: 20000, method: 'get', responseType: 'json'});
promise.then(function(flags) {
dispatch(loadFlagsSuccess(flags));
}).catch(function(error) {
throw(error);
});
};
}
'// localhostを:9000 /旗/ ALL'、輝き/ V1/API/flag''へのAjaxリクエストはリクエストになります私は絶対パスでAxiosとのAPIを呼び出します'// localhost:9000/flags/sparkle/v1/api/flag'に' app.use( '/ sparkle'、...) 'のヒットしません。ブラウザのDevToolを開いて確認できますか? – shaochuancs
また、 'sparkle/v1/api/flag'へのリクエストは' .../v1/api/flag'のようなものにプロキシされます。 'sparkle/flags'に代理されることはまずありません。あなたのコードに何か不足していますか? – shaochuancs
ご返信ありがとうございます。私の所見は以下の通りです。一度チェックしてください。 URL = http:// localhost:9000/flag/all、 APIは= 'sparkle/v1/api/flag'と呼ばれます。 開発ツールurl = http:// localhost:9000/flag/sparkle/v1/API /フラグ(404結果)、 であるべき=のhttp:// localhostを:9000 /輝き/ V1/API /フラグ、 つ以上の観察: 私のウェブサイトのURLは、httpのようなものである場合:// localhost:9000/flag/all/testing、 Devツールurl = http:// localhost:9000/flag/sparkle/all/v1/api/flag(結果は404) – Abhi