2011-03-03 30 views
5

Tengo un problema para obtener el valor de retorno (tipo de contenido: "text/xml"). Soy capaz de obtener valor devuelto por el acceso directo esta URL:Diferentes formas de pasar XML a través de jQuery AJAX

https://[domain_name]/myfolder/myapi/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>

Por favor, me ayudan a corregir estas alternativas si está mal (llamado en HTML situada en MyFolder) porque siempre alerta 'Failed'.

$.ajax({ 
    type  : "GET", 
    url  : "interface/?xml=<xml version='1.0'><MyTasks><Search></Search></MyTasks>", 
    dataType : "text/xml", 
    success : function(msg){ 
     alert('Success'); 
    } 
    error : function(msg) { 
     alert('Failed'); 
    } 
}); 

o ...

$.ajax({ 
    type  : "POST", 
    url  : "interface/", 
    data  : { xml: escape("<MyTasks><Search></Search></MyTasks>") }, 
    dataType : "text/xml", 
    success : function(msg){ 
     alert('Success'); 
    } 
    error : function(msg) { 
     alert('Failed'); 
    } 
}); 

Gracias.

SOLUCIÓN

La interfaz tiene que ser visitada por https, por lo que cambió url PARAM a URL absoluta. También tengo que usar "xml" no "text/xml" como su dataType. Resulta éxito, gracias.

+0

El está en el URI XML? – iivel

+0

¿recibe la 'alerta ('error');'? e intente 'dataType: 'xml'' – Rafay

+0

@ 3nigma Sí, he intentado usar' xml ', mantiene las alertas' Fallido '. –

Respuesta

3

Para simplificar, me gustaría hacer la siguiente

supongamos que está utilizando un script php llamado script.php.

var xml_string = "<xml version='1.0'><MyTasks><Search></Search></MyTasks>"; 

$.get('script.php', {xml: xml_string}, function(){ //your success function 
    alert('success'); 
}).error(function(){ //your error function 
    alert("error"); 
}); 
4

ocurre esto los puestos en cada .. de su ejemplo, parece que su configuración para Obtiene .. Prueba esto:

$.ajax({  
    type  : "GET", 
    url  : "http://blachblahblah.com/abc.html", 
    dataType : "text/xml", 
    data  : { xml : escape("<xml version='1.0'><MyTasks><Search></Search></MyTasks>") }, 
    success : function(msg){ alert('Success'); } , 
    error : function(msg) { alert('Failed'); } 
}); 
1

No entiendo por qué se utiliza el tipo de datos?

Lo que quiere/necesita es contentType.

De api.jquery.com:

tipo de datos (por defecto: suposición inteligente (XML, JSON, script o HTML)) Tipo: Cadena El tipo de datos que usted está esperando volver desde el servidor . Si no se especifica ninguno, jQuery intentará inferirlo basándose en el tipo MIME de la respuesta .........

contentType (predeterminado: 'application/x-www-form-urlencoded; charset = UTF -8 ') Tipo: Cadena Cuando envíe datos al servidor, use este tipo de contenido. El valor predeterminado es "application/x-www-form-urlencoded; charset = UTF-8", que está bien para la mayoría de los casos. Si pasa de forma explícita en un tipo de contenido a $ .ajax() .............

Esperamos que esto pueda ayudar a

Cuestiones relacionadas