繁体   English   中英

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

[英]Access denied when calling web service from javascript

我的目标是使用 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 错误访问被拒绝。 我的 web 服务位于同一个域中,所以跨域不相关? 有人可以帮我解决这个问题吗? 干杯 NirNiroN

如果您使用的是 JavaScript 并且您没有从您自己的域调用 Web 服务,那么它是不允许的。 但是,您可以将 JSONP 用于跨域调用,因此请尝试使用它。

你可以在这里阅读http://en.wikipedia.org/wiki/JSONP

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM