我正在使用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” - “未调用回调”。
感谢任何形式的帮助。
答案 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