0

我目前正在尝试使用http://services.odata.org/V4/(S(jskq43fsvrxbzaf2jzhboo13))/OData/OData.svc/Products上的公共 OData 提要获得一个简单的 crud 应用程序演示

GET-ting 数据有效,但是我无法通过单击按钮更新数据,并收到 501(未实现)错误。我相信它处理了启用 CORS 的需要。请看我的小提琴。提前致谢!

var requestSettings = {
  url: "http://services.odata.org/V3/(S(ettihtez1pypsghekhjamb1u))/OData/OData.svc/Products(" + key + ")",
  method: "POST",
  headers: {
    "X-Http-Method": "PATCH",
    'accept': "application/json;odata=verbose"
  },
  'contentType': "application/json; charset=utf-8", //content-length not required
  datatype: 'json',
  data: JSON.stringify(values),
  success: function updateSuccess() {
    deferred.resolve();
    alert("successful update");
  },
  error: function updateError() {
    deferred.reject();
    alert("un-successful update");
  }
};

$.ajax(requestSettings);

我在这里有一个 JSFiddle: https ://jsfiddle.net/jf713jf/ybLg1b4h/4/

4

1 回答 1

0

考虑使用提供访问 OData 服务的逻辑的DevExpress.data.ODataStore 。

由于您使用的是第四版 OData 服务,因此 ODataStore 构造函数选项如下所示:

new DevExpress.data.ODataStore({
    url: "http://services.odata.org/V4/(S(jskq43fsvrxbzaf2jzhboo13))/OData/OData.svc/Products",
    key: "ID",
    keyType: "Int32",
    version: 4,

    // To overcome the cross-origin issue
    jsonp: true
});

希望能帮助到你。

于 2015-06-24T09:55:31.500 回答