从javascript调用Web服务时访问被拒绝

时间:2011-07-13 05:53:22

标签: javascript jquery

我的目标是使用Jquery调用Web服务。 我从这个网站找到了这个例子: How to use jQuery to call an ASP.NET web service?

我将其修改为我的用途:

function InfoByDate(aUrl){
    var divToBeWorkedOn = '#AjaxPlaceHolder';
    var webMethod = 'http://MyWebService/Web.asmx/GetInfoByDates'
    var parameters = "{'sUrl':'" + aUrl + "'}"

    $.ajax({
        type: "POST",
        url: webMethod,
        data: parameters,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(msg) {    
            $(divToBeWorkedOn).html(msg.d);
        },
        error: function(e){
            $(divToBeWorkedOn).html("Unavailable");              
        }
    });
}

现在我收回js错误访问被拒绝! 我的网络服务位于同一个域中,因此跨域不相关。 有人可以帮我解决这个问题吗? 干杯 NirNiroN

3 个答案:

答案 0 :(得分:1)

如果您使用的是JavaScript并且没有从您自己的域中调用Web服务,则不会被允许。但是,您可以使用JSONP进行跨域调用,因此请尝试使用它。

您可以在此处阅读http://en.wikipedia.org/wiki/JSONP

答案 1 :(得分:0)

你在哪里打电话给这个?如果你不在同一个域(即“mywebservice”),它将无法正常工作,因为你无法进行跨域的ajax调用。

如果是这种情况,我建议您查看可用的各种选项(服务器上的CORS,在'客户端'机器上使用反向代理,或JSONP)。

答案 2 :(得分:0)

Web服务是否可在同一台服务器上使用? Ajax不允许跨服务器请求,并且您的Web服务必须与JavaScript代码位于同一个域中才能使其正常工作。