我試圖使用獲取請求發送數據,目的地使用basicauth-middleware進行身份驗證。通過瀏覽器和源程序驗證(不發送數據)工作正常,我得到一個確認輸出,說明它已連接,但問題是源程序使用GET和request將少量數據發送到目標程序,但它沒有被收到。無法驗證HTTP GET請求Node.js + Expressjs
Destination.js
app.use(middleware('user1', 'wordpass'));
app.use(middleware(function(username, password) {
const auth = true;
console.log("PASSWORD ACCEPTED")
return auth;
}));
app.get('/data', function (req, res){
console.log(req.query);
var x = req.query.data1
});
Origin.js
middleware = require('basicauth-middleware');
function auth(){
request.get('http://127.0.0.1:3000', {
'auth': {
'username': 'user1',
'password': 'wordpass',
'sendImmediately': false
}
});
}
function send_data(){
//Gets data
function httpget() {
var url = "http://127.0.0.1:3000/data?data1="+data['data1']+"&="+data['data2']+"&online=true";
var xmlHttp = new XMLHttpRequest();
xmlHttp.open("GET", url, true);
xmlHttp.send();
console.log("Sent!")
return xmlHttp.responseText;
}
auth();
httpget();
}
事情我已經嘗試:
- 切換順序,這似乎並沒有改變任何東西
- 將sendImmediately更改爲false。我原來的想法是,它發送之前有任何數據要發送,但這不是呃案件,因爲連接確認顯示,同時請求發送和數據已被獲取
- 我看到this發佈從2011年開始,儘管它看起來並不相關,我做這件事的方式也不同,但如果我能適應它,我將做的事情會非常棒。
我對node.js和大部分這些東西還很新。如果我忘記了任何相關信息,我將確保添加它。
basicauth沒有定義。 var被設置爲中間件。相應地更新了文章。 – clbx
你的代碼現在是否在控制檯中輸出「PASSWORD ACCEPTED」? – qiAlex
是的。 PASSWORD ACCEPTED是提供的確認輸出。我假設這意味着建立連接並進行身份驗證,但沒有發送數據。數據發送時,它會在控制檯中打印出來。 – clbx