Cordova Https ajax请求失败或编码响应

时间:2014-12-29 11:42:18

标签: ajax cordova ssl https websphere

我们开发了一个应用程序,它在桌面和移动网络上运行完美,并带有verisign证书(https)。我们开发了iOS和android cordova应用程序,它与http服务器一起工作正常。为了生产,他们启用了SSL。由于ajax调用响应,iOS和Android混合应用程序无法正常工作。我收到的http和https的响应如下。客户端或其所有关于SSL的更改是否需要? SSL解码响应有什么解决方法吗?我们正在使用IBM的websphere应用服务器。

来自http服务器的响应     [{"SALT":"3FzekTIywrmm9jojnfHn11"}]

来自https服务器的响应

<html>
  <head>
    <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <META HTTP-EQUIV="Expires" CONTENT="-1"></head><body>
    <script type=text/javascript>
     function decode_base64(input){
       var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";
       var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9+/=]/g,"");
       while(i<input.length){
         enc1=keyStr.indexOf(input.charAt(i++));
         enc2=keyStr.indexOf(input.charAt(i++));
         enc3=keyStr.indexOf(input.charAt(i++));
         enc4=keyStr.indexOf(input.charAt(i++));
         chr1=(enc1<<2)|(enc2>>4);
         chr2=((enc2&15)<<4)|(enc3>>2);
         chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){
         output=output+String.fromCharCode(chr2)
       }
       if(enc4!=64){
         output=output+String.fromCharCode(chr3)}}return output;
       }      
       document.write(decode_base64("PHNjcmlwdCB0eXBlPXRleHQvamF2YXNjcmlwdD52YXIgdG9fZGVjPWRlY29kZV9iYXNlNjQoImNtUjFWV2hzWkc1MGRTbG5kRzlpZFdodWJ5RXBLSG9oWlc1aWRHeGtiM1V2Ylc1aVlIVm9ibTg4SXk0eGUzRnZMaU02SVh3dElUQXhNVEVvIik7IGRlY19yZXM9IiI7IHZhciB4b3Jfa2V5PTE7IGZvcihpPTA7aTw2MDtpKyspeyBkZWNfcmVzKz1TdHJpbmcuZnJvbUNoYXJDb2RlKHhvcl9rZXledG9fZGVjLmNoYXJDb2RlQXQoaSkpO30gZXZhbChkZWNfcmVzKTs8L3NjcmlwdD4="));
    </script>
  </body>
</html>

1 个答案:

答案 0 :(得分:0)

这是一种非常奇怪的方式来返回错误消息,但您的HTTPS服务器正在告诉

i18n-values: Missing value for "primaryParagraph"

你可以通过

看到
  1. 将HTML复制粘贴到文本编辑器
  2. 将其命名为 foo.html
  3. 在浏览器上打开它,
  4. 打开开发人员工具,然后查看控制台的位置。
  5. 回答你的问题:从客户端编码的角度来看,HTTP和HTTPS调用之间并没有太大区别。浏览器倾向于非常有效地隐藏它们,尽管在HTTPS调用等方面性能通常较弱。