2009-04-20 6 views
5

Je continue à obtenir l'erreur suivante de:problèmes d'ajax? avec activexobjects

exception uncaught: [Exception ... "code d'erreur retourné composant: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" emplacement : "cadre JS :: http://site/cms/js/interface.js :: :: doAjaxCall ligne 300" données: no]

 

exception uncaught: [exception ... « échec retourné composant Code: 0x80004005 (NS_ERROR_FAILURE) [nsIXMLHttpRequest.send] » nsresult: "0x80004005 (NS_ERROR_FAILURE)" emplacement: "cadre JS :: http://site/cms/js/interface.js :: :: doAjaxCall ligne 300" données: no]

Ligne 0

C'est la fonction avec le doAjaxCall

function doAjaxCall(cmd,params) { 
    var postdata='cmd='+cmd+'&params='+params; 

    var a=sajax_init_object(); 
    if (a) { 
    a.open("POST","ajax_handler.php", false); 
    a.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); 
    a.send(postdata);      <====Line 300 
     document.body.style.cursor="default"; 

    if(a.readyState == 4) { 
     return a.responseText; 
    } else { 
     alert("We where unable to execute the ajax call."); 
    } 
    } 

function sajax_init_object() { 
    var A; 
    try { 
     A=new ActiveXObject("Msxml2.XMLHTTP"); 
    } catch (e) { 
     try { 
      A=new ActiveXObject("Microsoft.XMLHTTP"); 
     } catch (oc) { 
      A=null; 
     } 
    } 
    if(!A && typeof XMLHttpRequest != "undefined") 
     A=new XMLHttpRequest(); 
    if (!A) 
     alert("Could not create connection object."); 
    return A; 
} 

de Toute idée?

+0

Est-ce que cela va à l'extérieur de votre domaine? Utilisez-vous une URL relative ou absolue? –

Répondre

1

En raison des restrictions de sécurité en Javascript, il est impossible de récupérer des informations provenant de domaines distants via un XMLHttpRequest. Je pense que vous avez besoin d'une procuration!

+0

Jetez un coup d'oeil ici aussi: https://developer.mozilla.org/En/HTTP_Access_Control – piero

+0

Le code utilise un URI relatif. D'où vient le domaine distant? – Quentin

+0

comment jamais si vous avez le contrôle du contenu de l'autre domaine vous pouvez autoriser un appel AJAX à partir de votre site en utilisant les en-têtes de sécurité 'Access-Control-Allow-origine: *' * = caractère générique et vous pouvez fournir une liste par des virgules de domaines EG '* .facebook.com, facebook.com' –

0

Il est dû au type MIME: application/x-www-form-urlencoded

Il fonctionne dans certains navigateurs. Il ne fonctionnera pas dans les navigateurs basés sur Gecko (Firefox par exemple)

Voir plus de détails à: http://ajaxpatterns.org/Talk:XMLHttpRequest_Call