Javascript Ajax请求在Firefox操作系统中不起作用
我在save按钮的onclick事件上调用这个函数abc 我想上传音频文件,为此我使用了一个带有javascript的Ajax请求 但在这里,我得到了req.onreadystatechange之前的控制台MSG 我的控件不在这个req.onreadystatechange.function内 有人能告诉我为什么会发生这种情况,以及如何解决这个问题吗Javascript Ajax请求在Firefox操作系统中不起作用,javascript,ajax,firefox-os,Javascript,Ajax,Firefox Os,我在save按钮的onclick事件上调用这个函数abc 我想上传音频文件,为此我使用了一个带有javascript的Ajax请求 但在这里,我得到了req.onreadystatechange之前的控制台MSG 我的控件不在这个req.onreadystatechange.function内 有人能告诉我为什么会发生这种情况,以及如何解决这个问题吗 我在控制台中没有收到任何类型的错误。它在任何浏览器中都不起作用。我认为您没有定义getXMLHTTP 您可以这样定义它: function abc
我在控制台中没有收到任何类型的错误。它在任何浏览器中都不起作用。我认为您没有定义getXMLHTTP 您可以这样定义它:
function abc()
{
console.warn("inside abc");
var req = getXMLHTTP();
console.warn("value of req" + req);
if (req) {
console.warn("inside if req");
req.onreadystatechange = function() {
console.warn("inside onreadychange");
if (req.readyState == 4) {
// only if "OK"
if (req.status == 200) {
var x = req.responseText;
} else {
alert("There was a problem while using XMLHTTP:\n" + req.statusText);
}
}
};
req.open("GET", "upload1.php" + queryString, true);
req.send(null);
}
}
检查这把小提琴:
不过,您可以替换查询字符串。我刚刚给出了一些字符串用于测试
附言:关于Firefox操作系统,我想你指的是Firefox浏览器你正在构建一个打包的Firefox操作系统应用程序吗?默认情况下,不允许跨源请求。你有几个选择 更改为type:web,以便您的应用程序不必遵守CSP内容安全策略 在API端点上启用CORS,以便所有域都可以向其发出跨源请求。这对于您的应用程序来说可能不够安全 将打包的应用程序转换为具有systemXHR权限的type:privileged。这将允许你的应用程序进行跨源请求,但让你的应用程序进入Firefox市场可能需要更多的审查。解释如下:
它在浏览器中工作吗?您在哪里创建了新的XMLHttpRequest?你能发布你的getXMLHTTP吗?是的,我创建了与下面定义相同的函数,它返回xmlhttp变量。我在fire fox os移动设备上工作。是的,我创建了与你定义相同的函数,它返回xmlhttp变量。我在fire fox os移动设备上工作。请看这里,我正在上传我的全部代码。我正在创建一个应用程序,它将捕获音频文件并保存到fire fox os设备的SADCARD中,然后我想将此文件上传到一台服务器。为此,我使用ajax,但正如我提到的,我只停留在一个地方。
function getXMLHTTP() { //function to return the xml http object
var xmlhttp=false;
try{
xmlhttp=new XMLHttpRequest();
}
catch(e) {
try{
xmlhttp= new ActiveXObject("Microsoft.XMLHTTP");
}
catch(e){
try{
req = new ActiveXObject("Msxml2.XMLHTTP");
}
catch(e1){
xmlhttp=false;
}
}
}
return xmlhttp;
}