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

How to fetch web service data in Mozilla Firefox?

本文关键字:获取 web 服务 数据 Firefox Mozilla      更新时间:2023-09-26

我正在用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);   
}

尝试以下代码:

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();
});

您可能会收到一个关于跨域ajax请求的js错误,在这种情况下,它在InternetExplorer中可以正常工作,但在其他浏览器上不能正常工作,因为IE不强制执行跨域安全策略
这将帮助您了解跨域、跨域错误
如果是这种情况,您需要tr JSONP或curl来获取数据
希望能有所帮助
你能从firebug控制台发布错误消息吗?

html页面是否与Web服务的端点url来自同一域?如果没有,那么这就是其他人在这里指出的跨域违规问题。检查是否有任何javascript错误。

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

或者叫做fiddler的软件http://fiddler2.com/fiddler2/

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