![](/img/trans.png)
[英]$http request. Response comes to success function even when status code is 401
[英]iisnode encountered an error when processing the request. HRESULT: 0x6d HTTP status: 500 HTTP subStatus: 1013
我正在使用ReactJS開發前端的webapp,並開發后端的express。 我正在將應用程序部署到天藍色。
為了測試我的請求是否通過,我編寫了兩個不同的API請求。
第一個非常簡單:
router.get('/test', (req, res) => {
res.send('test was a success');
});
然后在前端,我有一個按鈕,單擊該按鈕發出請求,然后得到響應“測試成功”。 每次都有效。
第二項測試是:
router.post('/test-email', (req, res) => {
let current_template = 'reset';
readHTMLFile(__dirname + '/emails/' + current_template + '.html', function(err, html) {
let htmlSend;
let template = handlebars.compile(html);
let = replacements = {
name: req.body.name
};
htmlSend = template(replacements);
let mailOptions = {
from: 'email@email.com',
to: 'someone@email.com',
subject: 'Test Email',
html: htmlSend
};
transporter.sendMail(mailOptions)
.then(response => {
res.send(response);
})
.catch(console.error);
});
});
然后,在部署應用程序后,我會分別調用這些測試中的每個測試。 我提到的第一個總是成功。 第二個應該發送一封非常簡單的電子郵件的大多數時間都失敗,並顯示錯誤“ iisnode在處理請求時遇到錯誤。HRESULT:0x6d HTTP狀態:500 HTTP subStatus:1013”。 奇怪的是,電子郵件偶爾會發送一次,但是這種情況很少發生。 在大多數情況下,發送錯誤響應之前,請求將只花兩分鍾。
我應該注意,在localhost中進行開發時,兩個測試始終可以正常工作,只是在生產中(部署為Azure)。
最近幾天我一直在挖掘,卻一無所獲。 任何幫助或指示將不勝感激。
我發現了問題所在。 我使用gmail發送我的測試電子郵件,默認情況下,如果gmail認為發出請求的應用程序不安全,它將阻止任何嘗試使用該帳戶的嘗試。 只需單擊第一次嘗試時它們自動發送給您的鏈接,即可輕松解決此問題。 馬上不明顯的是,當您進入生產模式時,它們會添加另一級別的安全性,在這種情況下,我認為這是一個驗證碼,盡管您可以在部署應用程序后立即在開發中發送電子郵件,成為事實。
無論如何,在深入研究之后,我找到了禁用驗證碼的選項,現在我的電子郵件可以正常發送了!
鏈接到該選項https://accounts.google.com/b/0/DisplayUnlockCaptcha
希望這會幫助某人。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.