通过jquery调用asmx文件时出错

时间:2012-06-26 09:18:25

标签: c# jquery ajax web-services asmx

当我尝试在同一解决方案中访问服务时,webservice将返回结果。但是当我上传这个网络服务并尝试访问时,就会发出错误。

  var _postData = '{lat:"42.28684519999999",lang:"-83.05254932"}';
        $.ajax({
            url: 'http://geo.xyz.com/Service.asmx/GetGeoLocationListByLatLang',
            data: _postData,
            type: "POST",
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (data) {
                alert(data.d);
                //                    $.each(data, function (i, item) {

                //                        alert(i);
                //                    });
                //Result(data);
                //                    alert(data.d);
                //                    var obj = $.parseJSON(data.d);
                //                    alert(obj);
            },
            error: function (request, status, error) {
                alert(request.responseText);
                alert(error);
                alert(status);
            }
        });

1 个答案:

答案 0 :(得分:1)

您违反了内置浏览器的same origin policy限制,这会阻止您发送跨域AJAX请求。这是一个nice guide,涵盖了不同的可能的解决方法。但由于您需要使用POST,因此在此阶段您的选择非常有限。我猜你的域上的服务器端代理作为网桥并将呼叫委托给远程域将是最好的解决方案。