使用XMLHttpResponse从Firebase托管站点调用HTTP(非SSL / HTTPS)REST

时间:2017-01-30 22:30:24

标签: django firebase https firebase-hosting

我正在尝试构建一个Firebase托管页面,该页面将使用以下脚本中的XMLHttpRequest连接到(Django)HTTP Web服务。

    <script>
  function UserAction() {
    var req = createRequest(); // defined below
    // Create the callback functions:
    var handleResponse = function (status, response) {
        alert("status " + status + " response: " + response)
    }
    var handleStateChange = function () {
        switch (req.readyState) {
          case 0 : // UNINITIALIZED
          case 1 : // LOADING
          case 2 : // LOADED
          case 3 : // INTERACTIVE
          break;
          case 4 : // COMPLETED
          alert("case 4" + req.responseType);
          handleResponse(req.status, req.responseJson);
          break;
          default: alert("error");
        }
    }

    req.onreadystatechange = handleStateChange;


req.open("GET", "https://foo.org:/bar/getid/?Id=" + document.getElementById('ID').value, true);
req.send();
    function createRequest() {
  var result = null;
  if (window.XMLHttpRequest) {
    // FireFox, Safari, etc.
    result = new XMLHttpRequest();
  }
  else if (window.ActiveXObject) {
    // MSIE
    window.alert("windows");
    result = new ActiveXObject("Microsoft.XMLHTTP");
  } 
  else {
    // No known mechanism -- consider aborting the application
    window.alert("no known mechanism");
  }
  return result;
}
}</script>

使用Chrome FireBase会引发404错误。 Django服务器没有注册任何连接。

使用FireFox FireBase会引发404错误。但Django服务器抛出

'code 400, message Bad HTTP/0.9 request type ('\x16\x03\x01\x00\xcc\x01\x00\x00\xc8\x03\x03\xdf\x04{\x9f\xe4\xb2\xc2ij\x8d\x14\xd5\xaa\xdcu\x14+&\xa4\xa1\xdf\xdc\xd8\x9b?\xea\xbdh\xb8')`

我确实在FireBase文档here中找到了这个,让我觉得这是不可能的。但希望我错了,或者有一种方法可以在开发/测试中做到这一点,但不是生产。

  

仅限SSL:Firebase托管仅限SSL,这意味着仅限内容   通过HTTPS提供服务。在开发应用程序时,请确保   已加载Firebase Hosting上未托管的所有外部资源   通过SSL(HTTPS),包括任何外部脚本。大多数浏览器都没有   允许用户加载混合内容&#34; (SSL和非SSL流量)。

感谢

0 个答案:

没有答案