我最初使用ajax
次调用将POST
数据发送到django rest framework
API。
$('#comment_form').on('submit', function(e) { e.preventDefault()
$.ajax({
type:"POST",
url: '/api/comments/create/',
headers:{ 'X-CSRF-Token': getCookie('csrftoken') },
data:$('#post_form').serialize(),
error: function(response){
alert('Not authorized.'); // Or something in a message DIV
},
success: function(response){
// do something with response
}
});
});
但出于某种原因,当我尝试404
任何使用评论POST
的内容时,我收到form
错误,
其他其他表单(例如登录form
和POST
form
的工作正常。
(这是包含该评论框的实时网站http://192.241.153.25:8000/#/post/images2)
我认为这是因为它后来通过使用angualr js的路由功能添加到DOM
。
当控制台网络标签正确发送csrf
时,它会抛出典型的csrf
令牌丢失错误。
有没有人知道这个问题的任何解决方案?
如果我使用AngularJs
代替jQuery
ajax
,我想知道它是否正常。
答案 0 :(得分:1)
正如我在当前页面上看到的那样,由于csrf保护检查导致403错误。
根据django的值https://docs.djangoproject.com/en/1.10/ref/csrf/#ajax
在angularjsmysqli_error()
函数中设置csrf cookie名称
config()