ajax Post数据,并得到返回结果

urls.py:

from django.conf.urls import url
from aptest import views as aptest
urlpatterns = [
    url(r‘^$‘, aptest.index, name=‘index‘),

]

编辑views.py,定义主页:

from django.views.decorators.csrf import csrf_exempt #导入csrf_exempt模块 

@csrf_exempt #由于csrf机制,在此需要调用该装饰函数,否则在ajax post数据的时候会提示403 forbiddon
def index(request): #主页
    print request.method
    a=request.POST.get(‘a‘)
    b=request.POST.get(‘b‘)
    print a,b
    if a is not None and b is not None:
        ret=int(a)+ int(b)
        return HttpResponse(str(ret)) #执行到此处,后面的代码不会再继续执行
    context={}
    return render(request,‘aptest/index.html‘,context)

编辑模板index.html:

在其form中定义action值,指向当前页面,则在ajax post data时无需再定义url,默认将把数据提交到当前页面。

{% extends "base.html" %}
{% block title %}aptest index{% endblock %}
{% block content %}
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript" src="/static/jQuery/index.js"></script> <!--应用的js脚本文件-->

<p>请输入两个数字</p>
<form action="{% url ‘aptest:index‘ %}" > <! -- 此处action表示该form提交到的页面,此处含义为 aptest应用的index页面。如果action为空,则需要在ajax post的url中进行定义。 method不需要定义,在ajax里面定义即可 -->
  {% csrf_token %}
    a: <input type="text" id="a" name="a" > <br>
    b: <input type="text" id="b" name="b"> <br>

    <p>result: <span id=‘result‘></span></p>
    <input type="button" id=‘sum‘ name=‘sum‘ value="cacl">
</form>
<div id="box"></div>

{% endblock %}

base.html:

{% include ‘header.html‘ %}
    <title>{% block title %}{% endblock %}</title>
</head>
<body>
    {% include ‘userauth.html‘ %}
    <h1>My Test site</h1>
    {% block content %}{% endblock %}
    {% block footer %}
    <hr>
    <p>Thanks for visiting my site2.</p>
    {% endblock %}
    <!-- {% include ‘footer.html‘ %} -->
</body>
</html>

header.html:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="en">
<head>

编辑index.js,定义js函数:

$(document).ready(function(){

  $(‘p‘).css(‘color‘,‘red‘)
  $(‘form input[type=button]‘).click(function(){  //绑定form中tpye=button的input标签
    a=$(‘form input[name=a]‘).val();
    b=$(‘form input[name=b]‘).val();
    // alert(a);
    //alert(b);
    $.ajax({
      type: ‘POST‘,
      //url: ‘/aptest/‘, 由于在index.html的form的action已经定义了该url,所以此处不需要再定义。 这段js代码如果直接写在index.html中,则该url也如此,不变
      data: {
        a:a,
        b:b
      },
      success:function(response,stutas,xhr){
        $(‘#result‘).html(response); //将index view的返回值绑定到id=result的内容中。response参数表示所有从后端返回的值
        alert(stutas); //执行成功返回状态success
      },
      error:function(xhr,errorText,errorStatus){
        alert(xhr.status+‘:‘+xhr.statusText); //数据提交失败返回403 forbidden
      }
    });
  });

执行结果:提交a=22,b=3,result返回25

时间: 2024-11-06 09:54:38

ajax Post数据,并得到返回结果的相关文章

用Nodejs+Express搭建web,nodejs路由和Ajax传数据并返回状态,nodejs+mysql通过ajax获取数据并写入数据库

小编自学Nodejs,看了好多文章发现都不全,而且好多都是一模一样的 当然了,这只是基础的demo,经供参考,但是相信也会有收获 今天的内容是用Nodejs+Express搭建基本的web,然后呢nodejs路由和Ajax之间的数据传输,也就是表单提交,然后在用nodejs把数据写入mysql数据库 用到的东西比较多,但是还是很有趣的 1.安装node.js 安装node.js,直接去官网下载然后根据需求点击下一步就好了 Node.js安装包及源码下载地址为:https://nodejs.org

springboot+shiro 02 - 异步ajax请求无权限时,返回json格式数据

博客: https://www.cnblogs.com/youxiu326/p/shiro-01.html github:https://github.com/youxiu326/sb_shiro_session.git 在原有基础上添加 SimpleFormAuthenticationFilter /** * 自定义过滤器,ajax请求数据 以json格式返回 * Created by lihui on 2019/2/28. */ public class SimpleFormAuthenti

如何去除AJAX收到数据中包含的html页面数据

问题: 如下代码所示,我用AJAX收到来自url: 'kzkj_check.jsp',返回的数据msg,总是包含页面的html数据,可是我只想要我返回的数据“false”, $.ajax({ url: 'kzkj_check.jsp', async:false, data: 'un='+ $('#userName').val() +'&pw=' + $('#passWord').val(), type: "get", success: function(msg){ if(msg

原生ajax调用数据简单实例代码

原生ajax调用数据简单实例代码:由于jQuery的盛行,现在使用较多的是jQuery封装好了的ajax,因为解决了浏览器兼容性问题,这对程序员来说就等于去掉了一个心头大患,但并非原生ajax就销声匿迹,并且本人感觉还是对原生的ajax有所了解的好,下面就是一段ajax数据调用的实例代码,非常的简单,初学者可以参考一下.代码如下:一.兼容浏览器部分: function xmlHttpR() { var xmlhttp; if(window.XMLHttpRequest) { xmlhttp=ne

js方法内Ajax请求数据判断,验证无效(OnClientClick=&quot;return Method();&quot;),还是直接执行后台代码

function CheckAdd() { var flag = true; $.ajax({ cache: false, async: false, url: "/ajaxpage/getajax.aspx?t=adjserviceclientlist&Cellphone=" + Cellphone + "&a=" + Math.random(), dataType: 'json', success: function (data) { if (d

jQuery 中 ajax 请求数据应用的一个小demo

举一个jquery中ajax的应用小 demo 便于以后的更多项目拓展 ,这里要注意的是保存的文件名和文件图片路径问题 ... ajax01.html <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title> ajax小例子 </title> </head> <body> <!--

框架 day50 BOS项目 4 批量导入(ocupload插件,pinyin4J)/POI解析Excel/Combobox下拉框/分区组合条件分页查询(ajax)/分区数据导出(Excel)

知识点: 批量导入(ocupload插件,pinyin4J /POI解析Excel(apache POI) /区域分页查询 /Combobox下拉框 /分区组合条件分页查询(ajax) /分区数据导出(Excel下载) BOS项目笔记第4天 1.    区域批量导入功能 *Ajax不支持文件上传. *上传并且不刷新上传页面原理: Target到一个0,0,0的隐藏iframe里,造成一个没有刷新的假象 <form target="myIframe" action="ab

Ajax——ajax调用数据总结

在做人事系统加入批量改动的功能中,须要将前台中的数据传给后台.后台并运行一系列的操作. 通过查询和学习了解到能够通过ajax将值传入到后台,并在后台对数据进行操作. 说的简单点.就是ajax调用后台的方法.通过学习和实践.学习了几种ajax调用数据的几种形式,如今总结一下: 1.  Ajax调用无參的后台方法的数据 Jquery前台代码: //ajax调用无參数后台方法 $(function () { $("#btnok").click(function () { $.ajax({ t

Ajax属性和函数以及 返回值之XML格式和文本格式(二)

(一) 客户端请求文本之json格式:接收到json格式,再有js解析(具体先eval成对象,然后.即可) var text = this.responseText; var book = eval('('+ text +')'); document.getElementById('btitle').value = book.title; document.getElementById('bintro').value = book.intro; //其中btitle和bintro是客户端网页中的