2017-08-01 90 views
1

我有一個請求處理程序中設置這樣的:Wakanda服務器CORS與HTTPS連接

httpServer.addRequestHandler("^/send-contact-message", "./rest-extensions/contact-messages.js", "sendContactMessage"); 

我已經建立了這樣的CORS:

<cors enabled="true"> 
    <domain name="imagesreimagined.com" methods="post"/> 
</cors> 

我的服務器建立安全連接( HTTPS)設置爲Accept only HTTPS from remote & allow HTTP and HTTPS from localhost。如果我從一個形式發送一個請求與action="https://imagesreimagined.store/send-contact-message",我得在瀏覽器中的錯誤,指出:

的XMLHttpRequest無法加載https://imagesreimagined.store/send-contact-message。 Access-Control-Allow-Origin不允許原產地http://imagesreimagined.com

如果我將我的服務器的安全連接(HTTPS)設置爲Accept both HTTP and HTTPS connections並將表單操作更改爲http,則它可以工作。但是,我需要所有遠程連接都是https。

我也嘗試了與443端口的CORS並得到相同的錯誤。

<cors enabled="true"> 
    <domain name="imagesreimagined.com:443」 methods="post"/> 
</cors> 

調用Wakanda服務器的服務器不是SSL,如果這有所幫助。

+1

你的網址是'https:// imagesreimagined.store',爲什麼要在CORS中添加'imagesreimagined.com'而不是'imagesreimagined.store'? – Yann

+0

@Yann'imagesreimagined.store'是運行Wakanda服務器的服務器的域名。 'imagesreimagined.com'是訪問Wakanda服務器的非Wakanda網站的域名。 –

+0

您是否精確定義了

'? 'get'是表單的默認值。您也可以嘗試在CORS設置中添加'POST; GET'。 – Yann

回答

1

一旦我從cors域名中刪除端口號,並將SSL添加到承載網站發佈到Wakanda服務器的服務器,它就工作了。

0

我想這不是一個答案,而是增加更多的問題,希望它有所幫助。

這太神奇了。今天早上我登錄了SO打算問這個同樣的問題。我的設置稍有不同。

我有我的Wakanda服務器設置爲只接受SSL連接並設置爲Accept only HTTPS from remote & allow HTTP and HTTPS from localhost。 Wakanda服務器發佈在端口8443上。

在同一臺機器上,我有一臺運行在端口80上的Apache服務器,它發佈了我的Angular 2應用程序。

我花了幾個小時試圖讓CORS工作沒有成功。我還沒有嘗試在SSL上運行Angular應用程序,但聽起來像是值得一試。

=====================

經過進一步調查,我發現這個問題。

不要在CORS定義中包含協議。

即:

而不是

<domain name="http://app.example.com" methods="post;get;put;delete"/> 

它應該是:

<domain name="app.example.com" methods="post;get;put;delete"/> 

很明顯的,但真的,我沒有看到很長一段時間。