【Django】框架ajax无法调用后台方法问题
来源:互联网 发布:斗鱼qqq的淘宝店是什么 编辑:程序博客网 时间:2024/06/07 06:42
Ajax 无法访问View中的方法
前段时间在搭建Django 框架时候, 遇到了一个问题,就是在 html 页面 写的Ajax 无法请求到views中的后台方法?
- 这是为什么呢?
- 主要是之前写的java代码的习惯, 觉得jsp页面也好 ,H5界面也好,请求都大同小异。
<script type="text/javascript"> function init(id,lo) { $.ajax({ url:"/detail/", data:{ID:id,load:lo}, type:'POST', success:function(json){ var data = $.parseJSON(json); if( data ) { $.each(data, function (key, value) { var st="" for(var i=0;i<value.length-1;i++){ st += value[i] st +="</br>" } $("#div1").html(st) }); } } }); }</script><body onload="init('{{ID}}','{{load}}')"><div id="div1"></div></body>
urls.py配置信息
urlpatterns = [ # url(r'^admin/', admin.site.urls), url(r'^show/',views.show), url(r'^detail/',views.detail),#之前有人告诉楼主r'^detail$/$' 要加个‘$’说是就能请求到,然并卵 #]
最后仔细想想, 我们一般请求 , 前台发送一个请求–>路由拦截–>转发到具体的方法 (java也好 ,Python也好,不过都是这么回事)
想明白这点后, 做了如下测试
- 路由拦截是否配置有问题 (http://127.0.0.1:8000/detail/)发现是好的,也进方法了
- 这就说明了不是我们配置的路由问题
- 那必然是我们ajax 写法不符合Python 规范
- 经过查阅资料,发现少了如下代码
<script type="text/javascript" src="/static/js/jquery.cookie.js"></script>(当然不能忘记js)<script type="text/javascript"> var csrftoken = $.cookie('csrftoken'); function csrfSafeMethod(method) { // these HTTP methods do not require CSRF protection return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method)); } $.ajaxSetup({ //设置ajax发送之前做的操作,在data里面加上一个键值对 beforeSend: function(xhr, settings) { if (!csrfSafeMethod(settings.type) && !this.crossDomain) { xhr.setRequestHeader("X-CSRFToken", csrftoken); } } }); function init(id,lo) { $.ajax({ url:"/detail/", data:{ID:id,load:lo}, type:'POST', success:function(json){ var data = $.parseJSON(json); if( data ) { $.each(data, function (key, value) { var st="" for(var i=0;i<value.length-1;i++){ st += value[i] st +="</br>" } $("#div1").html(st) }); } } }); }</script>
如此便解决了, ajax不能调用后台方法的问题!!!
阅读全文
0 0
- 【Django】框架ajax无法调用后台方法问题
- Ajax调用后台方法
- Ajax 调用后台方法
- ajax调用后台方法
- ajax调用后台方法
- ASP.NET AJAX框架调用后台代码的基本方法
- ajax后台调用前台方法
- jquery ajax调用后台方法
- jQuery Ajax 调用后台方法
- .net ajax调用后台方法
- JQ AJAX 调用后台方法--
- 【Web】【Ajax】Ajax调用Aspx后台方法
- Java后台框架篇--Struct2之使用Ajax调用Action方法并返回值
- SSH框架中整合dwr时无法调用后台方法的解决办法
- Ajax调用Webservice和后台方法
- VS2005 使用AJAX直接调用后台方法
- jquery ajax调用asp.net 后台方法
- JQuery Ajax调用asp.net后台方法
- 转义笔记
- python 归约、合拢、累加 函数
- SpringBoot + Mybatis + thymeleaf 搭建的个人博客
- [JS高级进阶] HTML5 的文件操作
- Nginx配置文件语法高亮方法
- 【Django】框架ajax无法调用后台方法问题
- Hive优化
- xutils2.0网络请求的关键代码
- java为移动端写接口开发实例
- 微服务 Dubbo + Zookeeper 原理解析
- MySql之事务处理详解
- 性能分析系列-cached memory
- 打印按钮直接调用打印机打印表格数据js页面
- 给定两个整形变量的值,将两个值的内容进行交换。