`

巧妙的解决csrf_token问题

阅读更多

无论是在django中,还是在ruby on rails中,都提供了一种基于token验证的机制,可以理解为防跨站机制。这种机制呆了的好处不必多说,但是会带来一种麻烦,就是在使用ajax的时候,会导致提交失败,比如在django中会提示:

 

CSRF verification failed. Request aborted.(django)
Can't verify CSRF token authenticity.(rails)

 

 这时候大家多数都会在ajax的对应ajax中加入

from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def ajax_method:
   django
skip_before_filter :verify_authenticity_token (rails)

 其实还有另外一个方法,这里只说在django中的应用,因为在rails里面没有测试过:

 

 <input type="hidden" id="csrfmiddlewaretoken" name="csrfmiddlewaretoken" value="{{ csrf_token }}"> 

 

 然后在用ajax的地方,加入:

   data: {datas:‘ datas’,csrfmiddlewaretoken: $("#csrfmiddlewaretoken").val()},

这样就可以了。

 

 

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics