Web services SyntaxError:使用Kendo UI创建数据源时出现无效标签错误

Web services SyntaxError:使用Kendo UI创建数据源时出现无效标签错误,web-services,gridview,asp.net-mvc-4,kendo-ui,Web Services,Gridview,Asp.net Mvc 4,Kendo Ui,我刚刚开始开发剑道UI,我为MVC Web应用程序项目创建了剑道UI,并创建了一个视图,该视图将在网格中显示用户列表,用户的数据从我创建的Azure Web服务中检索 我遇到的问题是,有一个语法错误,说有一个无效的标签。这是json Firebug正在捕获的 { "Meta": { "Method": "GetUsuarios", "Status": "ok" }, "Response": [ { "

我刚刚开始开发剑道UI,我为MVC Web应用程序项目创建了剑道UI,并创建了一个视图,该视图将在网格中显示用户列表,用户的数据从我创建的Azure Web服务中检索

我遇到的问题是,有一个语法错误,说有一个无效的标签。这是json Firebug正在捕获的

{
    "Meta": {
        "Method": "GetUsuarios",
        "Status": "ok"
    },
    "Response": [
        {
            "ApellidoM": "TestInfo1",
            "ApellidoP": "TestInfo1",
            "CreatedDateTime": "/Date(1357763187027-0600)/",
            "Nombre": "TestInfo1",
            "Password": "TestInfo1",
            "UpdatedDateTime": "/Date(1357763187027-0600)/",
            "UserName": "TestInfo1",
            "UsuarioId": 1
        },
        {
            "ApellidoM": "TestInfo2",
            "ApellidoP": "TestInfo2",
            "CreatedDateTime": "/Date(1357863418857-0600)/",
            "Nombre": "TestInfo2",
            "Password": "TestInfo2",
            "UpdatedDateTime": "/Date(1357863418857-0600)/",
            "UserName": "TestInfo2",
            "UsuarioId": 2
        }
    ]
}
我在JSONLint.com上测试了它,它是一个有效的json字符串,这是我的javascript函数,我在其中创建数据源并填充网格:

$(function () {
    var ds = new kendo.data.DataSource({
        transport: {
            read: {
                url: "http://127.0.0.1:81/SismosService.svc/usuario/index",
                dataType: "jsonp"
            }
        },
        schema: {
            data: "Response"
        },
    });
    $("#usuariosGrid").kendoGrid({
        columns: ["Nombre", "ApellidoP", "ApellidoM"],
        dataSource: ds
    });
});
这是我的观点:

<!DOCTYPE html>

<html>
<head >
    <link href="<%: Url.Content("~/Content/kendo/2012.3.1114/kendo.common.min.css")%>" rel="stylesheet" type="text/css" />
    <link href="<%: Url.Content("~/Content/kendo/2012.3.1114/kendo.default.min.css")%>" rel="stylesheet" type="text/css" />
    <title><%: ViewBag.GestionTitle %></title>
</head>
    <body>


        <h1><%: ViewBag.GestionTitle %></h1>
        <div id="usuariosGrid"></div>
        <button id="addUsuario" type="button" class="k-input"><%: ViewBag.Agregar %></button>

        <script src="<%: Url.Content("~/Scripts/jquery-1.7.1.min.js")%>"></script>
        <script src="<%: Url.Content("~/Scripts/kendo/2012.3.1114/kendo.web.min.js")%>"></script>
        <script src="<%: Url.Content("~/Scripts/usuario/usuario.js")%>"></script>
    </body>
</html>

正如你所看到的,我想做的很简单,为什么失败了呢?我的Web服务在我创建的ResponseObject中发送用户列表,该类如下所示:

[DataContract]
public class ResponseObject<T>
{
    public ResponseObject(T[] Response, MetaObject Meta)
    {
        this.Response = Response;
        this.Meta = Meta;
    }
    [DataMember]
    public T[] Response { get; set; }
    [DataMember]
    public MetaObject Meta { get; set; }
}
[DataContract]
公共类响应对象
{
公共响应对象(T[]响应,元对象元)
{
这个。反应=反应;
this.Meta=Meta;
}
[数据成员]
公共T[]响应{get;set;}
[数据成员]
公共元对象Meta{get;set;}
}
Meta只是我创建的另一个类,只是为了在Web服务增长时添加更多信息,并且需要将新信息发送到客户端

这就是在我的界面中如何定义获取用户的方法:

    [WebGet(UriTemplate = "/usuario/index",
    RequestFormat = WebMessageFormat.Json,
    ResponseFormat = WebMessageFormat.Json,
    BodyStyle = WebMessageBodyStyle.Bare)]
    ResponseObject<Usuarios> GetUsuarios();
[WebGet(UriTemplate=“/usuario/index”,
RequestFormat=WebMessageFormat.Json,
ResponseFormat=WebMessageFormat.Json,
BodyStyle=WebMessageBodyStyle.Bare)]
ResponseObject GetUsuarios();

我收到这个错误是什么?我发送用户的方式是否错误?

好的,我解决了这个问题,在我的Web服务中添加了以下内容以启用访问控制Allow Origin

<httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*"/>
  </customHeaders>
</httpProtocol>


它位于system.webServer标记的内部。希望这能帮助有类似问题的人。

看来您使用的是JSON而不是JSONP。如果将
传输中的
数据类型:“jsonp”
更改为
数据类型:“json”
,会发生什么情况?读取
?您说需要一个jsonp,但从服务器代码看,它似乎是一个json。是JSONP还是JSON?Firebug控制台在redit的JSON中显示GET 200 OK 67 ms服务器发送的内容,但我尝试了JSON和JSONP,但不知道Google Chrome控制台有什么问题,我得到了这个错误
XMLHttpRequest无法加载http://127.0.0.1:81/SismosService.svc/usuario/index. 起源http://localhost:65097 访问控制允许源站不允许使用。