0

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

我想使用 jQuery 获取该数据。我尽力让 WCf 使用 jQuery 获得响应,但徒劳无功。我还尝试了 $.Ajax 和 'jsonp',但没有成功。谁能帮我?

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

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

4

3 回答 3

1

我无法制作跨域示例来向您展示,但是

$('#a').load('http://www.lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/getLatestLocation​​​​​​​​​​​​​​​​​?callback=run');​

如果这些东西都设置好了,就可以了。

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

于 2012-12-28T18:24:40.600 回答
1

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

此博客提供了更多详细信息如何在 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。Access-Control-Allow-Origin 不允许来源http://fiddle.jshell.net 。

于 2012-12-28T18:26:58.677 回答
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);
        }
    }
);
于 2012-12-28T18:25:57.660 回答