2017-03-14 176 views
1

我試圖從Chrome擴展程序向我運行的AWS應用程序發出AJAX POST請求。該請求本身是通過HTTP規定(而不是HTTPS),我想我已經加入了適當的CORS頭到我的AWS應用程序(如下圖):通過HTTP默認爲https的AJAX請求https

app.use(function(req, res, next) { 
    res.header('Access-Control-Allow-Origin', '*'); 
    res.header('Access-Control-Allow-Headers', 'Origin, X-Requested-With, Content-Type, Accept'); 
    next(); 
}); 

然而,從擴展的POST請求超時,用簡單的錯誤「連接超時」。我怎樣才能解決這個問題?

+0

支票或小提琴手請求,看你能不能打的URL。同樣如果CORS被啓用,那麼你應該看到兩個請求,一個OPTIONS請求,然後是實際的POST請求。如果選項請求返回有效標題,則可能是因爲您阻止並且未返回 –

+0

該請求通過http使用curl,但不通過https(超時)進行。我現在就去查郵差。 –

+0

so http:// works,but call to https:// does not? –

回答

1

由於它可以與HTTP協議而不是通過HTTPS協同工作,您確定您打開了您在安全組入站規則中使用的HTTPS端口嗎? Inbound rules HTTP example

而且還檢查是否有HTTPS在您的清單文件權限:從郵遞員

"permissions": ["https://*/*", "http://*/*"], 
+0

你在說什麼'manifest file'?我添加了入站HTTPS規則,現在我得到了ERR_CONNECTION_REFUSED而不是超時。我想我可能需要遵循本指南(http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/configuring-https.html),其中涉及將HTTPS偵聽器添加到負載均衡器。 –

+0

我正在討論Chrome擴展的清單文件。現在您已添加入站HTTPS規則,很高興看到錯誤已更改!事實上,現在您可能需要更多地瞭解如何在應用程序上配置HTTPS,而不是從Chrome擴展端配置。 –