使用WCF数据服务消耗OData时出现JSON错误

时间:2012-10-28 10:42:33

标签: jquery json wcf-data-services odata

我正在使用Visual Studio 2012.我创建了一个名为ODataService的空Web应用程序项目,并添加了一个SQL Server Compact 4.0本地数据库,然后添加了一个映射到本地数据库的ADO.NET实体数据模型。现在添加了一个使用实体模型的WCF数据服务。所有这些都在一个项目下,即ODataService。创建完成后,我可以轻松地从浏览器中查询数据:

i.e. http://localhost:52964/EmployeeService.svc/Employees()?$filter=ID gt 3

现在我在同一个解决方案中添加了一个MVC3应用程序,我有ODataService项目。在那个MVC3项目中,我在Index.cshtml中编写了以下代码,使用jquery来消耗odata:

<script type="text/javascript">
$(document).ready(function () {
var qry = "http://localhost:52964/EmployeeService.svc/Employees?$filter=ID gt 3&$callback=callback&$format=json";
    var qry2 = "http://odata.netflix.com/v2/Catalog/Titles?$filter=ReleaseYear gt 2012&AverageRating gt 4&$callback=callback&$format=json";
    $('#loadData').click(function () {
        $('#loadingText').text('loading data...');


        $.ajax({
            dataType: "jsonp",
            url: qry,
            jsonpCallback: "callback",
            success: callback,
            error: function (jqXHR, textStatus, errorThrown) {
                debugger;
            }

        });

    });

    function callback(result) {
        debugger;
    }
});

当我使用qry2时,我的代码运行良好,但是当使用qry时,调试器正在错误部分中显示并显示“parsererror” - “未调用回调”。

感谢任何形式的帮助。

1 个答案:

答案 0 :(得分:3)

您是否在数据服务中添加了对JSONP的支持?您可以看到http://archive.msdn.microsoft.com/DataServicesJSONP有关如何执行此操作的说明。

更好的选择可能是使用WCF数据服务5.1.0-rc2,它为$ format / $ callback添加了现成的支持:http://blogs.msdn.com/b/astoriateam/archive/2012/09/26/wcf-data-service-5-1-0-rc2-released.aspx