1

HTML5アプリで、SOAP Webサービスを呼び出そうとすると、「サポートされていないメディアタイプ」エラーが発生します。

これが私の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]

ここにもエラーの画面を添付しました。

テストの目的で、phpファイルを作成し、そのphpファイルを使用してこのSOAPWebサービスを呼び出しました。Webサービスに接続すると非常にうまく機能します。これが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();

問題の特定にご協力ください。

4

1 に答える 1

3

Joachim Isakssonが提案したように、コンテンツタイプヘッダーを追加しましたが、現在は正常に機能しています。私もここに投稿しています。

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());
    });
}
于 2013-03-21T03:34:02.380 に答える