Jquery无法从WCF REST服务获得响应

时间:2012-12-28 18:19:16

标签: javascript wcf jquery wcf-rest

我开发了WCF休息服务并将其部署在可以通过浏览器访问的链接上,因为它的操作是“GET”。

我想使用jQuery获取该数据。我尽力让WCf使用jQuery获得响应 但是徒劳无功我也试过$ .Ajax和'jsonp'没有运气。任何人都可以帮助我吗?

网址为:http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation

您可以通过在浏览器中粘贴网址来检查网址响应。

3 个答案:

答案 0 :(得分:1)

我无法通过跨域示例向您展示

$('#a').load('http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation​​​​​​​​​​​​​​​​​?callback=run');​
如果设置了这些东西,

会工作。

您的服务需要启用JSONP回调或设置Access-Control-Allow-Origin标头以使跨域请求生效,或者您需要从同一域运行脚本。鉴于您的网址说AndroidApp,我认为您想要跨域。

答案 1 :(得分:1)

您需要在响应标头中将 Access-Control-Allow-Origin 设置为值[*]。

this blog提供了有关如何在WCF REST服务中完成的更多细节

如果您要在Web API中执行此操作,则可以添加

 Response.Headers.Add("Access-Control-Allow-Origin", "*")

使用小提琴调用服务

$(function() {

    $.ajax({
        url: "http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation",
        datatype: 'json',
        type : 'get',
        success: function(data) {
            debugger;

            var obj = data;
        }

    });

})​;​

我收到了错误

  

XMLHttpRequest无法加载   http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation。   来源http://fiddle.jshell.net不被允许   访问控制允许来源。

答案 2 :(得分:0)

以下示例代码:

$.ajax
(
    {
        type: 'GET',
        url: http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation,
        cache: false,
        async: true,
        dataType: 'json',
        success: function (response, type, xhr)
        {
            window.alert(response);
        },
        error: function (xhr)
        {
            window.alert('error: ' + xhr.statusText);
        }
    }
);