веб-сервис не работает на сафари - PullRequest
0 голосов
/ 16 декабря 2011

Я создал веб-сервис и вызывал его из своего javascript с помощью ajax. Он работает в Internet Explorer в некоторой степени, но не удается, когда я звоню, попробуйте запустить его на Safari или Firefox. Кто-нибудь знает почему?

Вот мой код JS:

function GetTopApps() {
    var serviceUrl = "http://localhost:2975/GetData.asmx?wsdl";

    var soapMessage ='<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><HomeScreenApps xmlns="http://tempuri.org/" /></soap:Body></soap:Envelope>'


    $.ajax({
        url: serviceUrl,
        type: "post",
        datatype: "xml",
        data: soapMessage,
        complete: GenerateList,
        contentType: "text/xml; charset=\"utf-8\""
    });

    return false;
}

function GenerateList(xmlHttpRequest, status) {
    $(xmlHttpRequest.responseXML)
                .find('HomeScreenAppsResult')
                .each(function () {
                 parseXML(xmlHttpRequest);
            });
        }

function parseXML(xmlHttpRequest) {
    var xmlDoc = xmlHttpRequest.responseXML;
    var appIdArray = xmlDoc.getElementsByTagName('application_id');
    var appNameArray = xmlDoc.getElementsByTagName('application_name');
    var appRatingArray = xmlDoc.getElementsByTagName('average_rating');

    var appCount = appIdArray.length;
    var appList = document.getElementById('TopApps');

    var htmlString = "<small><small><small><small><small><small><small><ul data-role='listview' data-filter='false' id='list'>";

    for (i = 0; i < 5; i++) {

        htmlString = htmlString + "<li><a id='" + appIdArray[i].xml + "' onclick='AppSelected(id);'>";
        htmlString = htmlString + "<img src='' alt='Logo' class='ListAppLogo'>";
        htmlString = htmlString + "<h3>" + appNameArray[i].xml + "</h3>";
        htmlString = htmlString + "<p>" + appRatingArray[i].xml + ".0/5.0</p>";
        htmlString = htmlString + "<input  type='hidden' value='" + appIdArray[i].xml + "'></a></li>";
    }

    htmlString = htmlString + "</ul></small></small></small></small></small></small></small>";
    appList.innerHTML = htmlString;
    $('#list').listview();

}

Ответы [ 2 ]

1 голос
/ 16 декабря 2011

Вы можете узнать это сами, используя отладчик Javascript, например Firebug для Firefox, или встроенный веб-инспектор для Safari.

Сначала проверьте журнал ошибок javascript и консоль на наличие ошибок синтаксического анализа, если их нет, используйте точки останова, чтобы пройти по коду и посмотреть, как он выполняется.Если вы обнаружите что-то конкретное, чего не понимаете, не стесняйтесь спрашивать об этом.

Также учтите, что ошибка может быть в вашем веб-сервисе, а не в том месте, где вы ее называете.

0 голосов
/ 14 ноября 2013

Safari более безопасен, чем IE или Chrome. Вы легко сможете работать в chrome или IE, потому что для safari требуется сертификат того сервера, чей сервис вы вызываете. убедитесь, что вы создали сертификат для этого сервера, если хотите запустить его на Mac или Iphone

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...