无论是在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()},
这样就可以了。