如何在Mozilla Firefox中获取Web服务数据?

时间:2012-03-06 03:20:29

标签: javascript html web-services firefox google-chrome

我正在用HTML编写一个项目,仅限JavaScript。 我有一个从Web服务(.asmx)获取数据的功能,它工作正常。但在Firefox中,Chrome无法正常工作。以下是代码,请验证:

function CreateXMLHttpRequest()
{
    if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
        return new XMLHttpRequest();
    }
    else {// code for IE6, IE5
        return new ActiveXObject("Microsoft.XMLHTTP");
    }
}   

function CallWebService() {


    var objXMLHttpRequest = CreateXMLHttpRequest();
    objXMLHttpRequest.open ("POST", 
                            "http://www.xxxxxxxxx.com/WebServicesp/WebMethods.asmx", 
                            false);
    objXMLHttpRequest.setRequestHeader("Content-Type", "text/xml; charset=utf-8");
    var packet='<?xml version="1.0" encoding="utf-8"?> 
                <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></soap:Body></soap:Envelope>';

    objXMLHttpRequest.send(packet);
    var res=objXMLHttpRequest.responseText;

    alert(res);   
}

4 个答案:

答案 0 :(得分:1)

试试这段代码:

function CallService() {

jQuery.support.cors = true;
    $.ajax({
        type: "POST",
        url: "url/Service1.asmx/servicename",
        dataType: "json",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        success: OnSuccess,
        error: OnError
    });


}
function OnSuccess(data, status) {
alert("success");

    alert(data.d);


}

function OnError(request, status, error) {


    alert(status);
}

$(document).ready(function () {
    CallService();
});

答案 1 :(得分:0)

你可能会收到关于跨域ajax请求的js错误,在这种情况下,它可以在Internet Explorer中正常工作,但在其他浏览器上却没有,因为IE不会强制执行跨域安全策略。登记/> 这有助于您了解跨域Cross-domain error
如果是这种情况你需要tr JSONP或curl来获取数据 希望能帮助到你
你可以从firebug控制台发布错误信息吗?

答案 2 :(得分:0)

html页面是否与webservice的端点url在同一个域中提供?如果不是,那么其他人在此处指出的是跨域违规问题。检查是否有任何javascript错误。

答案 3 :(得分:0)

我会尝试安装名为篡改数据的插件 https://addons.mozilla.org/en-US/firefox/addon/tamper-data/?src=search

或称为fiddler的软件 http://fiddler2.com/fiddler2/

这些将显示实际的请求和响应,因此如果有任何请求,您将能够在实际请求中找到问题。