Sta*_*uro 2 javascript ajax jquery webpack ruby-on-rails-5
我使用Rails 5.1 + webpack当我将jQuery包含到我的项目中时
plugins: [
new webpack.ProvidePlugin({
'jQuery': 'jquery',
'$': 'jquery',
'global.jQuery': 'jquery'
})
]
Run Code Online (Sandbox Code Playgroud)
并尝试使用jQuery.ajax PUT,POST或DELETE请求,例如
var that = this;
$.ajax({
url: navigator_item.url,
method: 'DELETE',
success: function(res) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
我得到ActionController::InvalidAuthenticityToken.
但是,当我在app.js文件中包含下一行的jQuery时
import $ from 'jquery'
window.jQuery = $;
window.$ = $; // lazy fix if you want to use jQuery in your inline scripts.
Run Code Online (Sandbox Code Playgroud)
这在shared.js中
module.exports = {
resolve: {
alias: {
'jquery': 'jquery/src/jquery'
}
}
Run Code Online (Sandbox Code Playgroud)
jQuery.ajax 工作良好.
jQuery.ajax当你将jQuery作为插件包含时,有没有办法使用?
这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) {
...
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1386 次 |
| 最近记录: |