当前位置: 首页 > news >正文

无锡网站制作启航好网站ie8兼容性

无锡网站制作启航好,网站ie8兼容性,九冶建设有限公司官方网站,网页设计logo图片今天学习Django框架#xff0c;用ajax向后台发送post请求#xff0c;直接报了403错误#xff0c;说CSRF验证失败#xff1b;先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了#xff1b;很显然#xff0c;用ajax发送post请求这样就白搭了…今天学习Django框架用ajax向后台发送post请求直接报了403错误说CSRF验证失败先前用模板的话都是在里面加一个 {% csrf_token %} 就直接搞定了CSRF的问题了很显然用ajax发送post请求这样就白搭了  文末已经更新更简单的方法上面的略显麻烦 上网上查了一下看了几个别人的博客才知道官网也早有说明解决办法大致流程就是   就是新建一个JavaScript文件然后把网上给的代码粘贴进去然后在你使用ajax的页面把它引入一下当然如果你在网上找到的解决代码包含JQuery的话那就需要在引入的JQuery之后引入了毕竟解决代码不唯一网上一找一堆基本都是对的原生JS和带JQuery的都有 文末会附上我使用的JS相关代码也可以去网上找   如果上述没有解决你的问题那就说明你和我踩了同样的一个小坑........   用了上面查到的方法直接就解决了我的问题但是随着我对代码修修改改、清除了相关页面的cookie吃个饭再运行竟然又报403的CSRF错误了百思不得其解的我又去Django官网看了一下相关部分的文档一堆英文看看大概找到了问题 我发现我把html页面里面原先加的 {% csrf_token %} 这个东西给删掉了加上谷歌的相关页面cookie被我一清除csrftoken就被咔嚓了再刷新页面去html页面里也找不到 {% csrf_token %} 没有了csrftoken那个cookie值即使有相关的JS代码也毛用没有了   打个比方 你吃饭需要工具也就是筷子但是饭都没有你拿个筷子吃什么呀这里的筷子就是解决问题的JS代码而饭就是这个 {% csrf_token %} 更确切说因该是浏览器中的叫 csrftoken 的 cookie两者都有了才能彻底解决吃饭的问题  总结下来 使用ajax发送post请求时html页面里一定要有 {% csrf_token %}在body里应该就没什么大问题然后引入相关的JS解决代码补充一下和表单没什么太大关系因为我的html页面里就没有表单直接通过点击按钮发送的ajax请求       需要引入的相关JS代码     1 $(document).ajaxSend(function(event, xhr, settings) {2 function getCookie(name) {3 var cookieValue null;4 if (document.cookie document.cookie ! ) {5 var cookies document.cookie.split(;);6 for (var i 0; i cookies.length; i) {7 var cookie jQuery.trim(cookies[i]);8 // Does this cookie string begin with the name we want?9 if (cookie.substring(0, name.length 1) (name )) { 10 cookieValue decodeURIComponent(cookie.substring(name.length 1)); 11 break; 12 } 13 } 14 } 15 return cookieValue; 16 } 17 function sameOrigin(url) { 18 // url could be relative or scheme relative or absolute 19 var host document.location.host; // host port 20 var protocol document.location.protocol; 21 var sr_origin // host; 22 var origin protocol sr_origin; 23 // Allow absolute or scheme relative URLs to same origin 24 return (url origin || url.slice(0, origin.length 1) origin /) || 25 (url sr_origin || url.slice(0, sr_origin.length 1) sr_origin /) || 26 // or any other URL that isnt scheme relative or absolute i.e relative. 27 !(/^(\/\/|http:|https:).*/.test(url)); 28 } 29 function safeMethod(method) { 30 return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); 31 } 32 33 if (!safeMethod(settings.type) sameOrigin(settings.url)) { 34 xhr.setRequestHeader(X-CSRFToken, getCookie(csrftoken)); 35 } 36 });  简单方法 首先在你需要发起ajax post请求的页面的里面随便一个地方加上 {% crsr_token %}然后浏览器里查看源码会有这么一个隐藏标签input typehidden namecsrfmiddlewaretoken valuejlYb5LCP21TxGapw7OuO0xbHmRnyFzlgDapiDl1M1Vp6dOjPM4BlHOgOVeuPYQ27在发起ajax post 请求时组织json参数时以下面这种方式使其成为参数前两个参数是我自定义的请自行忽略其中键值对中的键名为input标签的name名值就为其value值 csrf $(input[namecsrfmiddlewaretoken]).val(); params {sku_id: sku_id, count: count, csrfmiddlewaretoken: csrf}; 这样就可以把csrf中的参数传递给后端就不会有403错误了相比前面用了好大一段JS代码要简洁的多 转载于:https://www.cnblogs.com/springionic/p/10816659.html
http://www.sadfv.cn/news/490737/

相关文章:

  • 项目网站分析网络公司排行榜
  • 株洲网站建设公司个人网站设计模板
  • seo建站平台哪家好网页设计公司蒙特
  • 小程序源码一般多少钱网店搜索引擎优化的方法
  • 湖北餐饮网站建设获取网站缩略图的asp代码
  • 网站设计的流程简答题wordpress中文的社区
  • 做企业网站有什么工作内容软件工程师的就业前景
  • 哈尔滨网站建设报价价格郑州网站seo顾问
  • 网络推广团队需要哪些人手优化关键词排名seo
  • 企业网站模板观叫湖南岚鸿团队免费建立自己的网站
  • 关于自行建设门户网站的请示做设计网上揽活哪个网站最好
  • 有那些猎头做单的网站网页开发工资多少
  • 江西宜春市建设局网站太原网络营销公司
  • 北京市保障性住房建设投资中心官方网站做网站公司关键词
  • 查不到备案的网站wordpress官方的三个主题好排名
  • 网站如何使用cdn衡水网站网站建设
  • 自己做网站需要哪些流程网站源码下载后怎么用
  • 1.电子商务网站建设的核心是( )网站到首页排名
  • 江西冰溪建设集团网站网站建设员性质
  • 做外贸最好的网站建设电影推荐网站开发
  • 深圳网站优化哪家好网站 需求 文档
  • 门户网站的门户思维有什么特点福安seo
  • 海南住房和城乡建设部网站太原有做网站的吗
  • 网站验证码怎么做的竞价推广账户竞价托管收费
  • 网站版式分类无锡网站建设原则
  • 佛山智能建站摄影作品欣赏网站
  • 北京网站建设 优化东莞大型企业网站建设
  • 网站仿站教程衡水网站托管
  • wordpress qq联系代码江西网站优化
  • 秦皇岛百度网站排名北京app外包