Nếu bạn đang sử dụng bảo vệ Rails CSRF mặc định ( <%= csrf_meta_tags %>
), bạn có thể định cấu hình mô-đun Angular của mình như sau:
myAngularApp.config ["$httpProvider", ($httpProvider) ->
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content')
]
Hoặc, nếu bạn không sử dụng CoffeeScript (cái gì!?):
myAngularApp.config([
"$httpProvider", function($httpProvider) {
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content');
}
]);
Nếu bạn thích, bạn chỉ có thể gửi tiêu đề cho các yêu cầu không NHẬN với một số thứ như sau:
myAngularApp.config ["$httpProvider", ($httpProvider) ->
csrfToken = $('meta[name=csrf-token]').attr('content')
$httpProvider.defaults.headers.post['X-CSRF-Token'] = csrfToken
$httpProvider.defaults.headers.put['X-CSRF-Token'] = csrfToken
$httpProvider.defaults.headers.patch['X-CSRF-Token'] = csrfToken
$httpProvider.defaults.headers.delete['X-CSRF-Token'] = csrfToken
]
Ngoài ra, hãy chắc chắn kiểm tra câu trả lời của HungYuHei , bao gồm tất cả các cơ sở trên máy chủ thay vì máy khách.