【问题标题】:PUT works with POSTMAN but not with AXIOSPUT 适用于 POSTMAN 但不适用于 AXIOS
【发布时间】:2018-05-02 08:19:58
【问题描述】:

我正在尝试更新数据库中的记录。后端在 C# ASP.NET 中,前端在 vuejs 中。 GET、POST 方法适用于 POSTMAN 和 AXIOS。 PUT 方法确实适用于 POSTMAN,但不适用于 axios。下面是 axios 的精简版。

axios({
  method: 'PUT',
  url: 'http://localhost:64427/api/employees/update',
  header:{
      'Content-Type': 'application/json'
  },
  data: {
       QUAD: n_emp.QUAD,
       EMAIL: n_emp.EMAIL,
       ACTIF_O_N:n_emp.ACTIF_O_N
  }
}).then(response => {
   this.$router.push('/management/employee/overview')
}

下面是控制器

 [HttpPut]
 [ActionName("update")]
 public HttpResponseMessage UpdateEmployee([FromBody]EmployeeFormVM employee)
 {
    var db = new KronosDB("public");
    var response = Request.CreateResponse();
    EMPLOYEE updateemployee = db.Employees.Where(e => e.QUAD == employee.QUAD).FirstOrDefault();
    updateemployee.QUAD = employee.QUAD;
    updateemployee.ACTIF_O_N = employee.ACTIF_O_N;
    updateemployee.EMAIL = employee.EMAIL;
 }

我在控制器的顶部有这个。

[EnableCors(origins: "http://localhost:8080", headers: "*", methods: "*")]

我收到下面的消息

预检中 Access-Control-Allow-Methods 不允许方法 PUT 回应。

【问题讨论】:

  • 应该可以according to my reading of the docs。可能你的“在控制器顶部”的想法和我的有点不同。
  • @Quentin 我把它放在public class EmployeesController : ApiController上方

标签: asp.net-web-api vue.js axios


【解决方案1】:

按照文档中的说明进行操作

Enabling Cross-Origin Requests in ASP.NET Web API 2

我在 Register 函数的 WebApiConfig.cs 中添加了这些行来解决这个问题。

config.EnableCors();

【讨论】:

    猜你喜欢
    • 2021-08-11
    • 2019-06-05
    • 2020-07-19
    • 2019-01-26
    • 2018-06-22
    • 2020-07-21
    • 2015-04-10
    • 2020-04-23
    • 2015-09-19
    相关资源
    最近更新 更多