web service con Jquery

Iniciado por alcatraz, 4 Junio 2012, 18:24 PM

0 Miembros y 1 Visitante están viendo este tema.

alcatraz

Hola, estoy haciendo una web de ejemplos para aprender un poquito de Jquery. Hasta ahora la cosa fue bastante bien, pero me he encontrado con un problema: Mi idea es hacer un cliente de un web service, en concreto este:

http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx?op=Consulta_DNPRC

pero siempre que hago la llamada obtengo un "undefined error" y ya no se por donde buscar el fallo.

Mi codigo es el siguiente:


function refCatastral()
{
    var wsUrl = "http://ovc.catastro.meh.es/ovcservweb/OVCSWLocalizacionRC/OVCCallejero.asmx";


    var soapRequest =
'<?xml version="1.0" encoding="utf-8"?>'+
'<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'+
    'xmlns:xsd="http://www.w3.org/2001/XMLSchema"'+
    'xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">'+
  '<soap:Body>'+
    '<Provincia xmlns="http://www.catastro.meh.es/">Madrid</Provincia>'+
    '<Municipio xmlns="http://www.catastro.meh.es/">Madrid</Municipio>'+
    '<RefCat xmlns="http://www.catastro.meh.es/">1749101VK4714H0001KW</RefCat>'+
  '</soap:Body>'+
'</soap:Envelope>';

    $.ajax({
        type: "POST",
        url: wsUrl,
        contentType: "text/xml; charset=\"utf-8\"",
        dataType: "xml",
        data: soapRequest,
        success: processSuccess,
        error: processError
    });
    alert(soapRequest);
}

function processSuccess(data, status, req) {
    alert(req);
}

function processError(data, status, req) {
    alert(req.responseText + " " + status);





¿Alguien sabe por donde puede estar fallando?

Un saludo. Gracias.

WarGhost

#1
Por cuestiones de seguridad no se pueden hacer peticiones AJAX a direcciones remotas, salvo si el servidor remoto si acepte.

Tambien puede utilizar: JSONP.
¿Qué culpa tengo yo de tener la sangre roja y el corazón a la izquierda?

[u]nsigned

JSONP no le va a servir. La razon es que ese WS devuelve la respuesta en formato SOAP (basado en xml), no en JSON.

Yo que o te recomendaria es que te crees un proxy local con php. Es decir un script en PHP que llame al webs ervice ese. Luego desde tu web con jQuery llamas al proxy (archivo local php) y asi no necesitas nada cross-domain.

Saludos

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!

alcatraz

Muchas gracias por vuestras respuestas.

Un saludo.