Jika Anda menggunakan perlindungan CSRF Rails default ( <%= csrf_meta_tags %>
), Anda dapat mengonfigurasi modul Angular Anda seperti ini:
myAngularApp.config ["$httpProvider", ($httpProvider) ->
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content')
]
Atau, jika Anda tidak menggunakan CoffeeScript (apa !?):
myAngularApp.config([
"$httpProvider", function($httpProvider) {
$httpProvider.defaults.headers.common['X-CSRF-Token'] = $('meta[name=csrf-token]').attr('content');
}
]);
Jika suka, Anda dapat mengirim tajuk hanya pada permintaan non-GET dengan sesuatu seperti berikut:
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
]
Juga, pastikan untuk memeriksa jawaban HungYuHei , yang mencakup semua pangkalan di server daripada klien.