Llegar Error De Red De 415 Unsupported Media Type

En mi app HTML5 estoy recibiendo un «Unsupported Media Type» error, cuando intento llamar a servicios web SOAP.

Aquí es el código de mi función de javascript.

function login()
{
    var soapMessage = '<?xml version="1.0" encoding="UTF-8"?>'+
    '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:blu="http://www.bluedoortech.com/">'+
    '<soapenv:Header/>'+
    '<soapenv:Body>'+
        '<blu:Connect>'+
            '<blu:userID>' +  $("#txtUserName").val() + '</blu:userID>'+
            '<blu:pwd>' + $("#txtPassword").val() + '</blu:pwd>'+
        '</blu:Connect>'+
    '</soapenv:Body>'+
    '</soapenv:Envelope>';


    $.ajax({
        url : 'Wealth.asmx' ,
        data: soapMessage,
        type: "POST",
        dataType: "xml", 
        cache : false,
        processData: false
    }).success(function(xmlDoc,textStatus) {
        alert($(xmlDoc).text());
    });
}[1]

Aquí os adjunto una pantalla de error.

Para propósitos de prueba hice un archivo php y he utilizado ese archivo php para llamar a este servicio web SOAP. Funciona muy bien cuando me conecto a la web del servicio. Aquí está el código PHP.

        header("Content-type: text/xml"); 
        $soap_request = file_get_contents('php://input');

        $xml = simplexml_load_string($soap_request);

        $userIDTag = $xml->xpath('//blu:userID');
        $userID = $userIDTag[0][0];

        $passwordIDTag = $xml->xpath('//blu:pwd');
        $password = $passwordIDTag[0][0];

        $client = new SoapClient("Wealth.asmx?WSDL", array('trace' => true));
        $objLogin =  $client->Connect(array('userID'=>$userID,'pwd'=>$password));

        echo $client->__getLastResponse();

Amablemente me ayude con la identificación del problema.

  • ¿Cómo sobre la adición contentType: "text/xml" a la llamada de ajax?
  • Joachim Isaksson es derecho : usted enviar «xml» de datos sin declarar como tales. Google para «unsupported media type» : checkupdown.com/status/E415.html, stackoverflow.com/questions/11492325
  • Gracias por sus respuestas. Voy a comprobar la utilización de aquellos.

1 Kommentar

  1. 3

    Como Joachim Isaksson sugerido, he añadido el encabezado de tipo de contenido y es un trabajo bien ahora. Estoy publicando aquí también.

    function login()
    {
        var soapMessage = '<?xml version="1.0" encoding="UTF-8"?>'+
        '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:blu="http://www.bluedoortech.com/">'+
        '<soapenv:Header/>'+
        '<soapenv:Body>'+
            '<blu:Connect>'+
                '<blu:userID>' +  $("#txtUserName").val() + '</blu:userID>'+
                '<blu:pwd>' + $("#txtPassword").val() + '</blu:pwd>'+
            '</blu:Connect>'+
        '</soapenv:Body>'+
        '</soapenv:Envelope>';
    
    
        $.ajax({
            url : 'Wealth.asmx' ,
            data: soapMessage,
            headers: {
                "Content-Type":"text/xml"
            },
            type: "POST",
            dataType: "xml", 
            cache : false,
            processData: false
        }).success(function(xmlDoc,textStatus) {
            alert($(xmlDoc).text());
        });
    }

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea