【发布时间】: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