0

我正在尝试通过 odata 从数据库中删除一个条目。我收到错误消息

{"error":{"code":"","message":{"lang":"en-US","value":"Bad Request - 查询语法错误。"}}}

我的代码:

function deleteMonthEntry() {

    var item = actMonthEntries.getItem(listIndex);
    var queryString = "Stundens(" + item.data.datensatz_id + ")?$format=json";
    var requestUrl = serviceUrl + queryString;

    WinJS.xhr({
        type: "delete",
        url: requestUrl,
        headers: {
            "Content-type": "application/json"
        }
    }).done(
          function complete(response) {

          },
          function (error) {
              console.log(error);
          }
       );
}

我的请求 URL 如下所示:

    requestUrl = "http://localhost:51893/TimeSheetWebservice.svc/Stundens(305233)?$format=json"

谢谢马洛

4

2 回答 2

1

至少我找到了解决方案:

我已经向我的服务输入了一个过滤请求,如下所示:

TimeSheetWebservice.svc/Studens?$filter=datensatz_id eq 305221

这通过此链接返回了正确的条目:

TimeSheetWebservice.svc/Studens(305221M)

因此,如果我在 ID 后输入 M,一切正常。但我不知道这个 M 是从哪里来的。

谁能告诉我这个M的原因?它不属于ID。ID是这个305221

马洛

于 2013-05-21T13:11:38.520 回答
0

您确定您正在与之交谈的服务器支持$format查询选项吗?许多人没有。我会尝试删除请求 URI 的那部分,而是修改您的headers值以指定 Accept 标头:

headers: {
    "Content-Type": "application/json",
    "Accept": "application/json"
}

对于$format允许的服务器,给它一个json值相当于提供一个application/jsonMIME 类型的 Accept 标头。

通常,对于DELETE操作,Accept标头或$format值仅对错误情况很重要。使用成功DELETE的 ,响应负载正文将为空,因此服务器无需了解您的格式偏好。

于 2013-05-16T17:02:57.287 回答