我正在尝试构建一个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流量)。
感谢