网络服务没有在safari上工作

时间:2011-12-16 15:40:13

标签: javascript .net web-services safari

我创建了一个Web服务,并使用ajax从我的javascript中调用它。它在某种程度上适用于Internet Explorer,但是当我调用try在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 个答案:

答案 0 :(得分:1)

您可以使用Javascript调试器(如Firebug for Firefox)或Safari的内置Web检查器来查找自己。

首先检查您的javascript错误日志和控制台是否有任何解析错误,如果没有使用断点来逐步执行代码以查看它是如何执行的。如果您发现任何您不理解的具体内容,请随时询问。

还要考虑错误可能在您的网络服务中,而不是您调用它的地方。

答案 1 :(得分:0)

Safari比IE或Chrome更安全。 您可以轻松地在chrome或IE上运行,因为safari需要您正在调用其服务的服务器的证书。 如果您想在Mac或Iphone上运行该服务器,请确保为该服务器创建证书