JQuery AJAX потребляет веб-сервис SOAP

Я экспериментировал и пытался изучить JQuery, используя AJAX для использования веб-службы SOAP, которую я написал некоторое время назад. Ниже приведен код, который я использую:

<script type="text/javascript">
    var webServiceURL = 'http://local_server_name/baanws/dataservice.asmx?op=GetAllCategoryFamilies';
    var soapMessage = '<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"><soap12:Body><GetAllCategoryFamilies xmlns="http://tempuri.org/" /></soap12:Body></soap12:Envelope';

    function CallService()
    {
        $.ajax({
            url: webServiceURL, 
            type: "POST",
            dataType: "xml", 
            data: soapMessage, 
            contentType: "text/xml; charset=\"utf-8\"",
            success: OnSuccess, 
            error: OnError
        });

        return false;
    }

    function OnSuccess(data, status)
    {
        alert(data.d);
    }

    function OnError(request, status, error)
    {
        alert('error');
    }

    $(document).ready(function() {
        jQuery.support.cors = true;
    });
</script>

<form method="post" action="">
    <div>
        <input type="button" value="Call Web Service" onclick="CallService(); return false;" />
    </div>
</form>

В настоящее время метод, вызываемый в веб-службе, возвращает массив семейств категорий, которые содержат код категории и описание категории. Поскольку метод возвращает XML, я установил соответствующий запрос ajax. Однако, когда я запускаю приложение, я получаю окно с сообщением об ошибке - я уверен, что будет причиной проблемы. Я знаю, что веб-сервис работает, он вызывается несколько сотен раз в день другими веб-приложениями .NET, которые я написал.

Любая помощь будет принята с благодарностью.

Спасибо,

12 голосов | спросил Andy Evans 10 PM00000070000005031 2011, 19:08:50

1 ответ


0

Попробуйте установить флаг processData: false. Этот флаг по умолчанию true, и я думаю, что jQuery - это преобразование вашего XML в строку.

$.ajax({
    url: webServiceURL, 
    type: "POST",
    dataType: "xml", 
    data: soapMessage, 
    processData: false,
    contentType: "text/xml; charset=\"utf-8\"",
    success: OnSuccess, 
    error: OnError
});
ответил Mrchief 10 PM00000070000000931 2011, 19:12:09

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132