1

它可以读取远程数据库,可以在本地创建新项目,但它们实际上并不保存到远程数据库。这是添加新项目的内容:

function addNewItem(){
  dataSource.add({id:"0", petName:"Dusty", petSpecies:"Dog", petGender:"M"});
  dataSource.sync();
}
$('#addPet').bind('click', addNewItem);

这个函数中的 ajax POST 调用而不是 dataSource 的东西完美地添加到我的数据库中:

var object = { id:"0", petName:"Dusty", petSpecies:"Dog", petGender:"M" };
$.ajax({
  type: "POST",
  url: 'website/petData',
  headers: { "Authorization" : "Bearer ${AccessToken}" },
  contentType: "application/json",
  data: JSON.stringify(object)
}) 

这是我的数据源代码。我需要改变什么?我已经尝试过很多不同的事情,但还没有运气。

var dataSource = new kendo.data.DataSource({
  type: "everlive",   
  transport: {
    typeName: 'petData',
    read: {
      url: "website/petData",
      dataType: "jsonp"
    },
    create: {
      url: 'website/petData',
      dataType: "jsonp"
    }
  },
  group: "petSpecies",
  schema: {
    model: {
      id: "id",
      fields: {
        id: { type: "number"},
        petName: { type: "text" },
        petSpecies: { type: "text" },
        petGender: { type: "text" }
      }
    }
  }
});
4

1 回答 1

0

因此,多亏了 giltnerj0 和 Brett 的评论,我能够在谷歌上搜索到正确的词,并发现我需要做的就是将 create 的 dataType:jsonp 更改为 json。我现在收到一些 POST 错误,但它最终是 POST 并将内容保存到我的数据库中。

create: {
  url: 'website/petData',
  dataType: "json"
}
于 2013-09-06T17:01:56.093 回答