zoukankan      html  css  js  c++  java
  • JQuery的Ajax

    首先说一下Ajax的运行原理:

        页面发起请求,会将请求发送给浏览器内核中的Ajax引擎,Ajax引擎会提交请求到服务器端,在这段时间里,客户端可以任意进行任意操作,直到服务器端将数据返回给Ajax引擎后,会触发你设置的事件,从而执行自定义的js逻辑代码完成某种页面的功能。

    Ajax的内容:

    $(‘#i1‘).click(function(){      // 绑定一个事件
        $.ajax({                    // $.ajax(里面是一个字典)
            async:true,            // 是否异步,默认为true
            url: ‘/ajax_edit‘,      // 要发送到的url
            type: "POST",           // 以post的方式发送
            data: $(‘#add_form‘).serialize(),   // 打包form里所有的东西 发送,但要在提交的form表单上写id、class内写东西来绑定
            // data: {‘user‘: 123,‘host_list‘: [1,2,3,4]},
            dataType: ‘JSON‘,       // 每次后端发送的都是字典转成的字符串,每次都要转码太麻烦,所以写上这个ajax内部就帮我们转码
            traditional: true,      // 传输列表[1,2,3,4]时要写上
            success: function(obj){ // 回调函数,执行成功后自动触发这个函数
                location.reload();  // jQuery下的 刷新页面   
            },
            error: function () {    // 发送请求,如果后台没抓到时执行
    
            }
    
        })
    });

    ps:Ajax如果传输的是字典或列表的话直接用get取值是取不完整的:

    request.POST.getlist(**)取到列表

    Ajax发送文件

    $('#d1').click(function () {
            // 如果用ajax发送文件 需要使用内置对象FormData
            var formData = new FormData();  // 生成一个内置对象
            // 内置对象formdata既可以传普通的键值对,也可以传文件
            formData.append('name','jason');  // 普通键值对
            formData.append('password','123');
            // 传文件
            var fileObj = $('#d2')[0].files[0];  // 先获取标签对象 转成原生js对象 通过内置的files方法拿到列表 然后去索引0拿到文件对象
            formData.append('myfile',fileObj);
            $.ajax({
                url:'',  // 不写默认朝当前页面所在的url地址提交
                type:'post',
                // 注意ajax在发送文件的时候 需要你手动指定两个特殊的参数
                
                
                contentType:false,  // 不要用任何编码 使用我formdata自带的编码即可
                processData:false,  // 浏览器不要处理我的数据 是什么就什么
                
    
                data:formData,
                success:function (data) {
                    alert(data)
                }
    
            })
        })
  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/duGD/p/11180901.html
Copyright © 2011-2022 走看看