AJAX fonctionne bien dans Firefox, mais des dysfonctionnements dans Mozilla Prism 0.9
-
05-10-2019 - |
Question
J'ai la fonction ajax suivante:
function ajax(value, url, urlVarname, displayContainers_id){
if(value == ''){
document.getElementById(displayContainers_id).innerHTML='';
}
/* THIS IS LINE 12*/ xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
if(xmlhttp.readyState == 4 && xmlhttp.status == 200){
document.getElementById(displayContainers_id).innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open('GET',url + '?varName=' + urlVarname + '&value=' + value, true);
/* THIS IS LINE 25 */ xmlhttp.send();
}
onmousedown="ajax(document.getElementById('searchParamater').value, 'http://192.168.0.7/controllers/search_controller.php', document.getElementById('searchBy').value, 'ajaxBucket')">
Ce tout fonctionne bien dans Firefox, mais quand je l'utilise 0,9 prisme, il fonctionne mal et je reçois l'erreur suivante dans la console d'erreurs:
Warning: assignment to undeclared variable xmlhttp
Source File: http://192.168.0.7/javascript/main.js
Line: 12
Error: uncaught exception: [Exception... "Not enough arguments [nsIXMLHttpRequest.send]" nsresult: "0x80570001 (NS_ERROR_XPC_NOT_ENOUGH_ARGS)" location: "JS frame :: http://192.168.0.7/javascript/main.js :: ajax :: line 25" data: no]
La solution
var
la xmlhttp, et passer à ""
.send (). Thats it.
Autres conseils
var xmlhttp = new XMLHttpRequest();
Je devine ici.
Quant à l'autre (plus grave) problème, voici une page que j'ai trouvé: https: // développeur .mozilla.org / fr / nsIXMLHttpRequest
Peut-être le fait que l'intérieur Prism vous êtes vraiment dans un environnement différent de celui que vous êtes à l'intérieur d'une page de navigateur fait une différence.
Comme le dit @Pointy, déclarer la variable xmlhttp
.
De même pour la ligne 25, la ligne correspondante de jQuery (par exemple) est la suivante:
xhr.send( type === "POST" || type === "PUT" || type === "DELETE" ? s.data : null );
Si vous ne jamais se, xmlhttp.send(null)
serait bien.