2016-02-22 22 views
6

Khi tôi gửi một yêu cầu xóa để một thiết bị đầu cuối nhất định, ví dụ với httpie từ thiết bị đầu cuối nhưKhông thể gửi yêu cầu DELETE với lấy api

http delete http://localhost:8181/admin/applications/uspecs

tôi nhận được một hành vi hợp lệ, như trong { success: true } như cơ thể phản ứng. Nhưng khi tôi làm

fetch (
    'http://localhost:8181/admin/applications/uspecs', 
    { 
    method: 'DELETE', 
    } 
) 
.then(res => doSomethingWithResponse()) 
.catch(err => cosole.error(err)) 

Trong mã javascript, sau đó tôi nhận được một lỗi

Fetch API cannot load http://localhost:8181/admin/applications/uspecs. 
Method DELETE is not allowed by Access-Control-Allow-Methods in preflight response. 

trên console. Tôi đang thiếu gì? Tôi đang nhận được một danh sách phương pháp hợp lệ trên yêu cầu tùy chọn.

+0

Đọc về chia sẻ tài nguyên gốc (CORS) - http://stackoverflow.com/questions/25845203/understanding-cors. –

+0

Trong phản hồi OPTIONS, tôi nhận được danh sách 'allow: DELETE, HEAD, GET, OPTIONS, POST'. Điều đó nên làm điều đó, phải không? @OndrejSvejdar – nabn

+0

Bạn có thể sử dụng nhà soạn nhạc fiddler để gửi yêu cầu OPTIONS đến điểm cuối và đăng phản hồi bạn đang nhận được hay không. Ngoài ra các bài viết là khó hiểu - đảm bảo các yêu cầu OPTIONS và DELETE được gửi đến cùng một điểm cuối (trong bài viết của bạn khác nhau). Đã cập nhật –

Trả lời

5

Bạn cần gửi tiêu đề Access-Control-Allow-Methods chứa các phương pháp được phép. Hiện tại, tiêu đề của bạn có tên là methods.

+0

Đó chính xác là nó! Cảm ơn! – nabn

+0

Tôi nên thêm tiêu đề đó như thế nào? –

+0

Điều đó tùy thuộc vào khung bên máy chủ của bạn. Kiểm tra tài liệu của nó. – ThiefMaster

Các vấn đề liên quan