ブラウザで動作するURLを使用してHTML GETリクエストを実行しようとしましたが、コードを実行すると何らかの原因で401 Unauthorizedエラーが発生します。問題は、私が認証を提供したことです。 URLは、それは(私もクッキーを避けるために、シークレットモードを経て)、FirefoxとChromeで成功するだけでなく、Googleのポストマンアプリが、しようと、いくつかの他のHTTP GETリクエストメソッドにもかかわらず、それらの形式ブラウザを除いて401が許可されていません
http://username:[email protected]?param=value
ですすべてが不正なエラーを返します。私はREST APIとXMLHttpRequest、そしてコマンドラインを通して実行しました。
これを引き起こす可能性のあるアイデアはありますか?または、誰かが同様の問題を抱えていて、解決策がある場合は、さらに良いでしょうか?
(注意:私は、誰もが必要な場合は手の込んだために最善を尽くします、私は十分に詳細な/クリアした場合は必ず、この全体のことにはかなり新しいものではありませんよ)
編集:ここではいくつかのアイデアがあります私が実行していた元のコード:
var func = function() {
var options = {
baseUrl: SERVER,
uri: '/device.cgi',
qs: {
param1: value1,
param2: value2
}
};
request(options, function(err, response, body) {
if (err) console.log(err);
else console.log(body);
});
};
私もthis questionから
function httpGet(theUrl)
{
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", theUrl, false); // false for synchronous request
xmlHttp.send(null);
return xmlHttp.responseText;
}
を実行し、同じ不正な結果を得ました。
そしてどうやら私が使用しているデバイスは、同様にPOSTで結構ですので、
var func = function() {
var formData = {
form: {
param1: value1,
param2: value2
}
};
request.post(SERVER + 'device.cgi', formData, function (err, response, body) {
if (err) {
console.log(err);
}
else console.log(body);
}).auth(userID, userPass);
};
まだまったく同じ結果に。
あなたがブラウザであり、ノードではないことを偽装する必要がありますか? URLの代わりにヘッダーを設定しようとしましたか? – epascarello
どのメソッドが失敗しますか? Curlは機能しますか?動作していないコードの部分を共有できますか? –
あなたがnodejsコードを投稿した場合、私たちはより良い助けをすることができます。要するに、ブラウザがあなたのための認証ヘッダーを作成しています。 – Alan