http://localhost:9000で動作するAngularJSアプリケーションがあります。フロントエンドのアプリはhttp://localhost:8088に対してhttpリクエストを行います。ですから、私は応答ヘッダーにCORSをセットアップしなければなりませんでした。私は// localhostを呼び出していながらリダイレクトを行うとブラウザコンソールにエラーが発生しました。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーがありません。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
next();
});
すべてが正常に動作します:
delete $http.defaults.headers.common["X-Requested-With"];
$http.defaults.headers.common["Accept"] = "application/json";
$http.defaults.headers.common["Content-Type"] = "application/json";
とサーバー側で
(ExpressJS):私はクライアント側に追加9000 - > // localhost:8088。しかし、別のURL(//api.example.com/authorize)にリダイレクトすると、ブラウザのコンソールで次のエラーが表示されます。XMLHttpRequestは//api.example.com/authorize?response_type=codeをロードできません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。したがって、原点「ヌル」はアクセスが許可されません。
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS');
next();
});
app.get('/authorize', function (req, res) {
var response = 'https://api.example.com/authorize?response_type=code';
res.redirect(response);
});
あなたはそれが間違っていることを知っていますか?
ええ、問題は、https://api.example.comがAccess-Controlヘッダーに応答していないことです。 – idbehold