2

Visual Studio 2012 を使用しています。ODataService という名前の空の Web アプリケーション プロジェクトを 1 つ作成し、SQL Server Compact 4.0 ローカル データベースを 1 つ追加してから、ローカル データベースにマップされた ADO.NET Entity Data Model を 1 つ追加しました。エンティティ モデルを使用する WCF データ サービスが 1 つ追加されました。これらはすべて、1 つのプロジェクト、つまり ODataService の下にあります。これを作成した後、ブラウザからデータを簡単にクエリできます。

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

これで、ODataService プロジェクトがある同じソリューションの下に 1 つの MVC3 アプリケーションを追加しました。その MVC3 プロジェクトでは、jquery を使用して odata を使用するために、Index.cshtml で次のようにコーディングしました。

<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を参照してください。

はるかに優れたオプションは、$format/$callback の組み込みサポートを追加する WCF Data Services 5.1.0-rc2 を使用することです: 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 に答える