2016-04-30 8 views
0

私は何かに立ち往生しています。ASP.NET5 MVC 6 CORS vue.jsリクエストは許可されていません

http://localhost:50000/api/user/user_name/machines 

のようなリクエストで私のapiをchome postmanアプリからテストします。 私はvue.jsでフロントエンドを構築開始し、次のことを試してみてください。

getReports() { 
    this.$http 
     .get('http://localhost:50000/api/user/user_name/machines', (data) => { 
     this.data = data; 
     }) 
     .error((err) => console.log(err)) 
    } 

そしてもちろん私は

のXMLHttpRequestがhttp://localhost:50000/api/user/user_name/machinesをロードすることはできませんを取得します。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。 Origin 'http://localhost:8080'はアクセスできません。

私は以前にいくつかのreact.jsを試してみて、私はちょうど私のstartup.csファイルが、運に

services.AddCors(); 

app.UseCors(builder => builder.AllowAnyOrigin()); 

を追加し、その後のようなので、同じ問題を越え、この時が来ました。私はreact.jsで働いたことを覚えています。私はブラウザから直接データを取得することもできます - このURLに行くだけです。 vue.jsに問題があるのはなぜですか?

私startup.csファイル: http://pastebin.pl/view/b93c9e2c

+0

削除すると動作します。 Vue.http.headers.common ['Authorization'] = 'Bearer' + localStorage.getItem( 'id_token'); なぜヘッダーが問題なのですか? また、builder.AllowAnyHeader()を追加します。しかしそれは助けにはなりませんでした – lukpep

答えて

0

あなたはCross Origin Request(CORS)の制限に実行しています。これは通常、ホスティング文書とは異なるオリジンであるサーバー要求を行うときに完全修飾URLを使用している場合に発生します。

あなたの例では、ご要望にhttp://localhost:50000/api/user/user_name/machinesを使用しています。可能であれば、/ api/user/user_name/machinesのような相対パスを使用して、ブラウザに入力されたURLに基​​づいてリクエストが行われるようにすることができます。これにより、ブラウザがプリフライトリクエストを送信しないようにします。

関連する問題