Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ajax 剑道UI网格请求方法是可选的,即使我打算发布_Ajax_Asp.net Web Api_Kendo Ui_Kendo Grid_Kendo Asp.net Mvc - Fatal编程技术网

Ajax 剑道UI网格请求方法是可选的,即使我打算发布

Ajax 剑道UI网格请求方法是可选的,即使我打算发布,ajax,asp.net-web-api,kendo-ui,kendo-grid,kendo-asp.net-mvc,Ajax,Asp.net Web Api,Kendo Ui,Kendo Grid,Kendo Asp.net Mvc,我试图将数据从剑道Ui网格发布到我的web api var crudServiceBaseUrl = "http://127.255.0.1:8081/api", dataSource = new kendo.data.DataSource({ transport: { read: { url: crudServiceBaseUrl + "/meeting",

我试图将数据从剑道Ui网格发布到我的web api

var crudServiceBaseUrl = "http://127.255.0.1:8081/api",
        dataSource = new kendo.data.DataSource({
            transport: {
                read:  {
                    url: crudServiceBaseUrl + "/meeting",
                    dataType: "jsonp",
                },
                update: {
                    type: "POST",
                    url: crudServiceBaseUrl + "/meeting/postmeeting",
                    contentType: "application/json; charset=utf-8",
                    dataType: 'json',

                    success: function (msg) {
                        alert("success");
                    }
                },

          .....


    $("#grid").kendoGrid({
        dataSource: dataSource,
        pageable: true,
        toolbar: ["create"],
        columns: [
            { field: "Organizer", title: "Organizer" },
            { field: "Title", title: "Title" },
            { field: "Location", title: "Location", },
            { command: ["edit", "destroy"], title: " ", width: "160px" }],

        editable: "inline"
    });
但是当我更新的时候

我得到405个错误

Request URL:http://127.255.0.1:8081/api/meeting/postmeeting
Request Method:OPTIONS
Status Code:405 Method Not Allowed
Request Headersview source
Accept:*/*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:accept, origin, content-type
Access-Control-Request-Method:POST
Host:127.255.0.1:8081
Origin:http://localhost:30320
Proxy-Connection:keep-alive
有人能给我解释一下请求方法是怎么变成选项的吗? 因此,我的ASP.NET Web API中的POST方法没有被调用

  [HttpPost]
  public HttpResponseMessage PostMeeting(MeetingEntity meeting)
    {
        _meetingRepository.Update(meeting);
        return new HttpResponseMessage(HttpStatusCode.OK);
    }

如果您正在访问
http://127.255.0.1:8081/api/meeting/postmeeting
from
http://localhost:30320
,这是一个跨来源请求。默认情况下,浏览器阻止访问位于不同来源的资源。退房


跨源资源共享()是绕过此限制的一种方法。因为你写了一篇文章,浏览器会发出一个预先发出的CORS请求,这基本上是一个选项请求。如果此选项请求产生带有必要CORS标题的响应,浏览器将随后发出POST请求。您可以实现一个操作方法来处理选项,但是现在在WebAPI中启用CORS非常容易。检查此项。

如果您正在访问
http://127.255.0.1:8081/api/meeting/postmeeting
from
http://localhost:30320
,这是一个跨来源请求。默认情况下,浏览器阻止访问位于不同来源的资源。退房

跨源资源共享()是绕过此限制的一种方法。因为你写了一篇文章,浏览器会发出一个预先发出的CORS请求,这基本上是一个选项请求。如果此选项请求产生带有必要CORS标题的响应,浏览器将随后发出POST请求。您可以实现一个操作方法来处理选项,但是现在在WebAPI中启用CORS非常容易。检查此项。

您好。你能解释一下“你可以实现一个操作方法来处理选项”吗?在数据源中我会在哪里使用它?我正在使用rack运行rails api,它为CORS和工作设置,但由于某种原因,Chrome不记得服务器允许CORS,并一直触发选项,然后每次GET。(所以是2 req而不是1)谢谢。你能不能解释一下“你可以实现一个操作方法来处理选项”。我将在数据源中的何处使用它?我正在使用rack运行rails api,它是为CORS设置的,可以正常工作,但由于某些原因,Chrome不记得服务器允许CORS,并且每次都会启动选项。(由1改为2)。我正在考虑推翻它。谢谢