我已经阅读了很多有关此问题的SO问题,我甚至根据其中一个答案建议从data-main
属性移出配置,但仍然没有运气。
我有rj_config.js
"use strict";
var require = {
baseUrl: '/static/js',
paths: {
'jquery': '../vendor/jquery/dist/jquery.min',
'jquery-ui': '../vendor/jquery-ui',
'bootstrap': '../vendor/bootstrap-sass/assets/javascripts/bootstrap.min'
},
shim : {
'bootstrap' : { 'deps' :['jquery'] }
}
};
和project.js
"use strict";
require(['jquery', 'bootstrap'], function($, bootstrap) {
// sets up the csrf on ajax calls
$.ajaxSetup({
beforeSend: function(xhr, settings) {
var csrftoken = $('meta[name="csrf-token"]').attr('content');
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
});
});
HTML
<script src="{% static 'js/rj_config.js' %}"></script>
<script data-main="project" src="{% static 'vendor/requirejs/require.js' %}"></script>
我仍然在Uncaught TypeError: Cannot read property 'ajaxSetup' of undefined
project.js
答案 0 :(得分:0)
遇到了一个间接暗示我应该使用requirejs
代替require
的答案的答案,因为我已经在rj_config.js中定义了require
因此,在更改为requirejs并进行UPDATE后:有时会工作:
"use strict";
requirejs(['jquery', 'bootstrap'], function($, bootstrap) {
// sets up the csrf on ajax calls
$.ajaxSetup({
beforeSend: function(xhr, settings) {
var csrftoken = $('meta[name="csrf-token"]').attr('content');
xhr.setRequestHeader("X-CSRFToken", csrftoken);
}
});
});