javascript
  • web-services
  • 2011-08-08 199 views 0 likes 
    0

    我正在嘗試使用JavaScript中的XMLHttpRequest對象對Web服務進行https調用。我成功地進行了常規的http呼叫,但無法使https運行。 https調用需要ssl證書,因此有關如何附加此調用證書的任何想法?Web服務調用HTTPS

    url2="https://myServer/axis2/webService/...";   
    envelope2 = 
         '<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">' + 
          '<soap:Header/>' + 
          '<soap:Body>' + 
             ..... 
          '</soap:Body>' + 
         '</soap:Envelope>'; 
    

    ..然後

    xmlHttp.open("POST", url, true); 
        xmlHttp.setRequestHeader("Content-Type", "application/soap+xml;charset=UTF-8;action=\"urn:getProjectInfo\""); 
        xmlHttp.setRequestHeader("Content-Length", len); 
        xmlHttp.setRequestHeader("SOAPAction", "urn:getProjectInfo"); 
    

    的問題是如何處理SSL密鑰撥打電話...... 感謝任何幫助/洞察力

    +0

    您無法從http頁面調用https資源。 [同源策略](http://en.wikipedia.org/wiki/Same_origin_policy)禁止它。也許這是你的問題? –

    +0

    可能..我只是無法調用方法,並從Web服務獲取數據,其SSL保護..但與目標C - (對於Iphone它與委託等工作).. – eMi

    回答

    0

    你不附加通話證書。您必須在運行的服務器上安裝SSL證書。如果安裝了SSL證書,那麼只需將HTTPS設置爲HTTPS即可。

    像Pekka所提到的,如果您發出請求的頁面不是完全相同的域,則會遇到同源策略問題:在這種情況下,「https:// myserver /」(大小寫是不重要)。

    +0

    thx 4答案,我會注意 – eMi

    +0

    你可以告訴我,如何做到這一點:「那麼這個調用將簡單地通過使其HTTPS」..? – eMi

    +0

    是的,而不是調用'http:// myServer/....'它會是'https:// myServer/.....'。你已經這樣做了,但沒有真正的代碼改變。 – Jordan

    相關問題