我使用Rails 5.1 + webpack 当我使用
将jQuery包含到我的项目中时 plugins: [
new webpack.ProvidePlugin({
'jQuery': 'jquery',
'$': 'jquery',
'global.jQuery': 'jquery'
})
]
尝试使用jQuery.ajax PUT,POST或DELETE请求,例如
var that = this;
$.ajax({
url: navigator_item.url,
method: 'DELETE',
success: function(res) {
...
}
});
我得到ActionController::InvalidAuthenticityToken
。
但是,当我在app.js
文件
import $ from 'jquery'
window.jQuery = $;
window.$ = $; // lazy fix if you want to use jQuery in your inline scripts.
,这在shared.js
中module.exports = {
resolve: {
alias: {
'jquery': 'jquery/src/jquery'
}
}
jQuery.ajax
效果很好。
将jQuery作为插件包含时,有没有办法使用jQuery.ajax
?
答案 0 :(得分:5)
ActionController::InvalidAuthenticityToken
与jQuery无关。
您必须在所有authenticity_token
,PUT
和POST
请求中传递DELETE
参数。
为此,您通常可以使用$('[name="csrf-token"]')[0].content
所以你的请求看起来像是:
var that = this;
$.ajax({
url: navigator_item.url,
data: { authenticity_token: $('[name="csrf-token"]')[0].content},
method: 'DELETE',
success: function(res) {
...
}
});