2017-02-27 162 views
1

我正在測試d3.js並且正在對服務進行工作調用,但是當我將SSL添加到服務和客戶端時,它不起作用。這可能是由於SSL證書是自簽名的。d3.js和自簽名SSL證書

d3.js有沒有辦法讓它忽略SSL錯誤?

更新2017-02-28: 代碼請求,我排除了,因爲它不是主要的東西。下面是一個簡單的調用,它實際上只檢索帶有json格式數據的文件。但是,調用實際的REST服務時問題會相同。

d3.json("https://vbgmysql01.local/d3/data2.json", function(error,json) { 
     console.log(error); 
      data = json.devices; 
      render(data); 
     }); 

該呼叫瀏覽器(在Windows上)提供了以下錯誤消息

GET https://vbgmysql01.local/d3/data2.json net::ERR_INSECURE_RESPONSE 

如果我把我的網頁在同一臺服務器上,並且首先接受的自簽名證書,那麼一切都將正常工作。但是,這顯然不是如何在完成時運行。

+0

你有沒有嘗試過從d3中調用服務?有可能d3沒有得到正確的答案。 – javier

+0

在使用Chrome的Windows上,我將得到以下錯誤消息net :: ERR_INSECURE_RESPONSE。在Mac上使用Safari或Chrome將改爲在CORS上投訴,但沒有SSL的CORS配置工作正常。 使用POSTMAN連接服務可以正常工作。 – Nenne

+0

您的問題缺少代碼,您是如何致電此服務的?這是否真的是一個CORS請求?你有沒有[見過這個問題](http://stackoverflow.com/questions/15115746/why-chrome-cancel-cors-option-request)。 'd3.js有沒有辦法讓它忽略SSL錯誤?',這與'd3.js'無關,它是你的網頁瀏覽器,它正在破壞請求。您是否通過HTTP加載頁面並通過HTTPS請求該服務? – Mark

回答

0

這就是我解決這個問題的方法。這不是一個好的解決方案,但另一方面,我應該使用真正的證書。

使用自簽名服務連接到服務。接受所有瀏覽器警告並繼續訪問該網站。

連接到我的網頁(在我的情況下使用http)。

現在檢索數據,但可能需要一些CORS魔術,如果不是全部存在的話。感謝所有的投入。