【问题标题】:Jquery unable to get the response from WCF REST serviceJquery 无法从 WCF REST 服务获得响应
【发布时间】:2012-12-13 23:30:46
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript wcf jquery wcf-rest


    【解决方案1】:

    我不能做一个跨域的例子给你看,但是

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

    如果这些东西已经设置好了。

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

    【讨论】:

    • 注意:将Access-Control-Allow-Origin 设置为* 将允许来自任何来源的请求。
    【解决方案2】:

    示例代码如下:

    $.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);
            }
        }
    );
    

    【讨论】:

    • 我继续修改它。虽然,我确实需要它在我的应用程序中是真实的,所以这真的取决于你真正需要什么。
    • 我只需要在successfunction里面输入数据。并且您的代码无法正常工作,并给出错误“错误无传输”
    【解决方案3】:

    您需要在响应标头中将 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 不允许 访问控制允许来源。

    【讨论】:

    • 我需要在哪里添加访问控制或者你能告诉我
    • 通过这种方式,我在 w.cf 的 web.config 中添加了访问控制允许 orign。现在你能在 iE 上试试你的代码吗system.webServer>
    • 出现错误:“NetworkError: 405 Method Not Allowed - lonestarus.com/AndroidApp/AndroidLocation.svc/RestService/…
    • 为什么我们需要在那里使用jsonp?您能否编辑您的答案并粘贴 jsfiddle 代码,以便我可以正确接受您的答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-14
    • 2017-06-27
    • 1970-01-01
    • 2017-06-24
    • 2020-06-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多