【问题标题】:Kendo UI grid odataKendo UI 网格数据
【发布时间】:2017-02-17 00:09:41
【问题描述】:

我的设置如下

  • IIS 8.5
  • 剑道用户界面
  • 服务器 2012
  • MSSQL

我对 odata 很陌生,由于 kendo ui 才发现它,这似乎是从 sql 获取数据的最佳方式。

我成功地在 C# 上创建了一个 asp.net Web 应用程序,以便能够从我的服务器获取 odata,如果我在我的浏览器上使用它,它就像一个魅力,我从 atatted 获取我的信息 json。

因为我是新手,所以我可能在这里出了点问题,但是我的 RESTful 服务位于一个单独的站点上,而不是我将使用剑道网格的主站点。我在端口 8080 上有 Restful,而我的普通站点在端口 80

这是生成网格的代码。

$("#vehiclesGrid").kendoGrid({
                        dataSource: {
                            type: "odata",
                            transport: {
                                read: {
                                    url: "http://mydomain(security issues):8000/odata/GetVehiclesConfigureds",
                                    dataType: "json"
                                },
                                schema:{
                                    model:{
                                        fields:{
                                            displayName:{type: "string"},
                                            sensor:{type: "number"},
                                            alertFlag:{type: "number"}
                                        }
                                    }
                                }
                            }

                        },
                        height: 550,
                        groupable: true,
                        sortable: true,
                        columns: [{
                            field: "displayName",
                            title: "Display Name",
                            width: 100
                        }, {
                            field: "sensor",
                            title: "# of Sensors"
                        }, {
                            field: "alertFlag",
                            title: "Alert Pending"
                        }]
                    });
<div id="vehiclesGrid"></div>

在控制台上我收到以下错误:

XMLHttpRequest 无法加载 http://mydomain(security 问题):8000/odata/GetVehiclesConfigureds?%24inlinecount=allpages。请求的资源上不存在“Access-Control-Allow-Origin”标头。 Origin 'http://mydomain(security issues)' 因此不允许访问。

如果我转到网络部分的开发人员工具,我可以看到正确检索到的 odata 信息,但网格是空的。所以我不知道为什么它不会显示它,或者即使它有事可做在控制台上出现该错误。

【问题讨论】:

    标签: asp.net iis kendo-ui kendo-grid odata


    【解决方案1】:

    查看错误,您似乎遇到了 CORS 问题。因此,请在您的 ODATA 应用上启用 CORS。

    通过代码 WebApiConfig.cs

    config.EnableCors();

    YourController.cs

    [EnableCors(origins: "http://Yourdomain.website.com", headers: "*", methods: "*")]
    public class YourController: ODataController
    {
      //details
    }
    

    【讨论】:

    • 我必须安装一些东西才能让它工作吗?我的编译器无法解析 EnableCors()
    • 另外,我的控制器中的来源应该是 Web 服务端口还是站点一?
    • @pato.llaguno 来源是您网站的端口 - 您对 Odata 控制器的请求的来源/来源
    • @pato.llaguno 添加 Microsoft.AspNet.WebApi.Cors 这个包如果你还没有
    • 谢谢,完成了这项工作,我现在有另一个问题,但似乎完全不相关,它在剑道 ui 部分。我得到“未捕获的类型错误:无法读取未定义的属性'__count'”我现在谷歌搜索它
    猜你喜欢
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    • 1970-01-01
    • 2016-08-25
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多