2

我正在使用 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

现在,我在拥有 ODataService 项目的同一解决方案下添加了一个 MVC3 应用程序。在那个 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”-“callback was not called”。

任何形式的帮助表示赞赏。

4

1 回答 1

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

于 2012-10-29T02:03:45.673 回答