PUT适用于POSTMAN但不适用于AXIOS

时间:2018-05-02 08:19:58

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

我正在尝试更新数据库中的记录。后端在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   响应。

1 个答案:

答案 0 :(得分:1)

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

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

我在注册函数的 WebApiConfig.cs 中添加了以下这些行来解决此问题。

config.EnableCors();