首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >WCF服务返回null的jQuery Ajax调用

WCF服务返回null的jQuery Ajax调用
EN

Stack Overflow用户
提问于 2010-12-18 06:01:41
回答 1查看 1.7K关注 0票数 1

我已经创建了一个WCF 休息 .NET 4服务,并将其部署到本地的IIS 7中。如果我使用费德勒并使用请求生成器,我就能够调用该服务并查看返回的数据是否正常。如果我尝试在浏览器中访问相同的REST位置,则不会返回JSON,但它看起来像XML

我的服务看起来是这样的:

代码语言:javascript
运行
复制
[OperationContract]
[WebGet(UriTemplate = "/{id}/details.json",
    ResponseFormat=WebMessageFormat.Json)]
public SampleItem Get(string id)
{
    return new SampleItem{ Id=1, StringValue="value from string"};
}

我的web.config文件只做了一点小小的改动:

代码语言:javascript
运行
复制
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true" defaultOutgoingResponseFormat="Json"/>

我试图像这样使用jQuery调用服务:

代码语言:javascript
运行
复制
$(document).ready(function () {
    $.ajax({
        type: "GET",
        contentType: "application/json; charset=utf-8",
        url: "http://wcf-rest/service1/1/details.json",
        dataType: "json",
        success: function (data) { alert(data); },
        error: function (e) { alert("error"); }
    });
}); // end .ready

但是,每次都返回null。我需要改变什么?

EN

回答 1

Stack Overflow用户

发布于 2010-12-18 06:26:46

我一直使用jQuery和Ajax作为JSON数据类型,我相信您需要将data更改为data.d。见下面的例子。

代码语言:javascript
运行
复制
function getMakes() {
    $.ajax({
        type: "POST",
        url: "../../WebService_VehicleAssignment.asmx/getAllVehicleMakes",
        data: "{}",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (msg) {
            var response = msg.d;
            $('#output').empty();
            $.each(response, function (vehicle, vehicle) {
                $('#output').append(new Option(vehicle.Make, vehicle.Id));
            });
        },
        failure: function (msg) {
            alert('failure');
        }
    });
}<br />

我使用火虫来调试这些东西。我可以准确地看到什么被张贴到web服务和什么回来了。如果web服务在抱怨,那么它抱怨的是什么。

了解为什么.dhttp://encosia.com/2009/02/10/a-breaking-change-between-versions-of-aspnet-ajax/中是必需的。简而言之,我认为它是一个包装器,因此如果返回的数据是原始的字面JavaScript代码,则返回的数据被视为字符串,而不是返回和执行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4476875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档