Javascript Ajax post请求403错误仅适用于某些用户?
我一直在让朋友们尝试我的网站,一些朋友在使用ajax的任何函数上都会出现403禁止错误。我很困惑为什么只有一些人会出错,尤其是当每个人都使用相同的浏览器时。有人知道为什么吗?我使用Django作为一个框架,我想我已经完成了文档中的所有工作 我的一个使用ajax的函数示例:Javascript Ajax post请求403错误仅适用于某些用户?,javascript,jquery,django,ajax,Javascript,Jquery,Django,Ajax,我一直在让朋友们尝试我的网站,一些朋友在使用ajax的任何函数上都会出现403禁止错误。我很困惑为什么只有一些人会出错,尤其是当每个人都使用相同的浏览器时。有人知道为什么吗?我使用Django作为一个框架,我想我已经完成了文档中的所有工作 我的一个使用ajax的函数示例: $('#button').click(function(){ $.ajax({ url: '/get_url/', type: "POST",
$('#button').click(function(){
$.ajax({
url: '/get_url/',
type: "POST",
data: {
data_name: data_to_send
},
beforeSend: function (xhr) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
},
success: function (data) {
//change some html text using data
},
error: function (error) {
console.log(error);
}
});
});
使用以下命令:
$('#button').click(function(){
$.ajax({
url: '/get_url/',
type: "POST",
data: {
data_name: data_to_send
},
headers: {
"X-CSRFToken": "{{ csrf_token }}",
},
success: function (data) {
//change some html text using data
},
error: function (error) {
console.log(error);
}
});
});
通过确保所有我的表单标记都有method='post'和{{crsf_token}}进行修复。它是如何“不工作”的,您是否有错误或回溯?您能显示要发送的数据吗?我发现您没有在请求中发送数据类型。这可能会使您的Ajax无法工作。检查这个文档,他们得到一个403禁止的错误。Tran,发送的数据只是一堆数组。都是分开的,但我只是用一个变量来表示它们。我会调查数据类型的事情。这仍然会给出403禁止的错误。你在哪里使用这个代码?在独立的js文件或模板文件中?此代码在我的main.js文件中
{{csrf_-token}
仅在模板文件中工作,要将csrf_-token值传递给main.js,您应该使用如下格式:头:{“X-CSRFToken”:$(This.find('input[name=“csrfmiddlewaretoken”]).val(),}