Tôi đã tạo ra một trang web api 2 và tôi đang cố gắng để làm một yêu cầu tên miền chéo nó nhưng tôi nhận được lỗi sau:OPTIONS 405 (Phương pháp không được phép) web api 2
OPTIONS http://www.example.com/api/save 405 (Method Not Allowed)
tôi đã có một cái nhìn xung quanh và hầu hết các giải pháp cho vấn đề này đang nói rằng tôi cần phải cài đặt CORS từ NuGet và kích hoạt nó vì vậy tôi đã cài đặt các gói và đánh dấu điều khiển của tôi với
[EnableCors("*", "*", "*")]
Nhưng điều này vẫn chưa giải quyết được vấn đề.
My ApiController
chỉ có Save
phương pháp sau đây trong:
[ResponseType(typeof(int))]
public IHttpActionResult Save(Student student)
{
if (ModelState.IsValid)
{
using (StudentHelper helper = new StudentHelper())
{
return Ok(helper.SaveStudent(student));
}
}
else
{
return BadRequest(ModelState);
}
}
Đây là js của tôi từ một tên miền khác nhau:
$.ajax({
type: "POST",
crossDomain: true,
data: JSON.stringify(student),
crossDomain: true,
url: 'http://www.example.com/api/save',
contentType: "application/json",
success: function (result) {
console.log(result);
}
});
Có cái gì khác tôi cần phải làm để cho phép điều này?
Điều này không giải quyết được vấn đề, nó tránh được nó. Đối với những người cần thực sự hỗ trợ các yêu cầu OPTIONS preflight, điều này không hữu ích. – defines
@ xác định điều này giải quyết vấn đề của tôi vì vậy không cần phải downvote - vấn đề của tôi là tôi cần một yêu cầu đơn giản vì tôi không cần phải hỗ trợ preflight. Nếu ai đó đang tìm cách hỗ trợ preflight, câu hỏi này không phải là về điều đó, đó là cách tôi có thể gọi ajax để nói chuyện với api web của mình - và câu trả lời là đưa ra một yêu cầu đơn giản, không cho phép hỗ trợ preflight –
Tiêu đề của câu hỏi là về OPTIONS quay lại 405. Bạn tránh hoàn toàn yêu cầu OPTIONS. Đây không phải là câu trả lời cho điều đó chút nào, nó đơn giản tránh nó. – defines