我设置角度$httpProvIDer如下:
myApp = angular.module('myApp',[])myApp.config(['$httpProvIDer',function(provIDer){ provIDer.defaults.xsrfcookiename = 'csrftoken'; provIDer.defaults.xsrfheadername = 'X-CSrftoken';}
然后,在做任何POST之前,我做一个设置cookie的GET.我可以通过Chrome确认cookie设置为:
set-cookie:csrftoken=hg88ZZFEdLPnwDdN1eiNquA8YzTySdQO; expires=Tue,19-Aug-2014 12:26:35 GMT; Max-Age=31449600; Path=/
(它在Chrome开发人员工具中的资源/ cookies / localhost中可见)
但是,当我做POST时,不会设置X-CSrftoken头
这是Chrome记录的POST:
POST /data/activitIEs/search http/1.1Host: localhost:14080Connection: keep-aliveContent-Length: 2Accept: application/Json,text/plain,*/*Origin: http://localhost:14080X-Requested-With: XMLhttpRequestUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_4) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/28.0.1500.95 Safari/537.36Content-Type: application/Json;charset=UTF-8Referer: http://localhost:14080/public/HTML/main.HTML?codekitCB=398694184.799418Accept-EnCoding: gzip,deflate,sdchAccept-Language: en-US,en;q=0.8cookie: csrftoken=hg88ZZFEdLPnwDdN1eiNquA8YzTySdQO
为什么没有设置标题?我还应该怎么做才能激活这个功能?
(注意:如果我手动通过$http()调用中的头文件,则POST请求工作正常.因此问题确实是AngularJs未设置的头文件)
解决方法 非常简单的答案:它只能从1.2.0版本发布,当时是发布候选人. 总结以上是内存溢出为你收集整理的django – XSRF标题未在AngularJS中设置全部内容,希望文章能够帮你解决django – XSRF标题未在AngularJS中设置所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)