私はCORS get
リクエストをVueでAxios経由で発行しようとしています。これまでのところすべてうまくいきますが、基本認証を使って認証する必要がある場合は、動作させることができません。Axios:Basic Authを使用してAPIを呼び出すことができません
HERESに私のコード
getData: function() {
let vm = this; // assign vue instance to vm
axios.get('url', {
withCredentials: true,
auth: {
username: 'name',
password: 'pass'
}
}).then(function(response) {
console.log(response)
}).catch(function(error) {
console.log(error)
})
}
は私が正しく資格情報だけでなく、URLを入力するにもかかわらず、私はいつも 401応答を取得。それはこのように見えます。
HTTP/1.1 401 Authorization Required
Date: Wed, 01 Feb 2017 16:23:31 GMT
WWW-Authenticate: Basic realm="'Realm'"
Content-Length: 499
Keep-Alive: timeout=15
Connection: Keep-Alive
Content-Type: text/html; charset=iso-8859-1
生の要求は、私が何をしないのですその
OPTIONS 'url' HTTP/1.1
Host: 'host'
Connection: keep-alive
Pragma: no-cache
Cache-Control: no-cache
Access-Control-Request-Method: GET
Origin: http://localhost:9000
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3)
AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.76
Safari/537.36
Access-Control-Request-Headers: authorization
Accept: */*
DNT: 1
Referer: http://localhost:9000/pages/blog_cc/blog_cc.html
Accept-Encoding: gzip, deflate, sdch, br
Accept-Language: de,en;q=0.8
のように見えますか?郵便配達員と全く同じ資格情報では、すべてが魅力のように機能します。 Chromeでも直接。
私は、この質問が既に何度か聞かれていたのを見ましたが、他のスレッドのすべての回答は私の解決策ではありません。たとえば、ノードから要求を発行することはできません。
編集:バニラJSでリクエストしてみましたが、無駄にしました。問題はバックエンドにあるようだ。それにもかかわらず、私のコードです。
let xml = new XMLHttpRequest();
xml.open('GET', api, true);
xml.setRequestHeader('Authorization', 'Basic: ' + btoa(user + ':' + pass));
xml.send();
それは実際にCORS要求です、ありがとう、私は完全にそれを言及して忘れてしまった!しかし、 'withCredentials:true'を指定しても、エラーはそのままです。 –
OPTIONS要求が失敗するか、またはGETでフォローが要求されますか? – theleebriggs
私は実際にはわかりません。これはRESTとの緊密な協力のためです。しかし、私のコンソールでは、まず 'OPTIONS 'url' 401(Authorization Required)'が表示され、 'XMLHttpRequestは 'url'をロードできません。プリフライト要求への応答がアクセス制御チェックを通過しない:要求されたリソースに「アクセス制御許可」がない。したがって、 'http:// localhost:9000'はアクセスが許可されていません。応答にはHTTPステータスコード401があります。 Access Control-Allow-Originは "*"に設定する必要があるため、2番目のメッセージは奇妙です。どうすればこれをさらに調査できますか? –