说明:测试所用的js框架为kissy,后端语言为php

写在前面

目前我们可以将ajax请求的情形按照不同的类型进行分类,比如页面编码:utf-8 or gbk; ajax 传参方式 post or get; 传参的时候数据放到url中还是放到data属性中;参数中是否带有中文;后端通过get or post方式获取参数; 后端解析并返回值的编码为 utf-8 or gbk。通过排列组合一下,发现居然多达64种,但是页面编码来说的话,我们暂定为utf-8(因为页面编码为gbk的情况是可以类推的)。我们在ajax请求的时候怎么去避免乱码,post和get如何取舍,应该注意些什么问题呢?来跟我一起来探索一下!

具体demo请移步:http://hutaoer.sinaapp.com/templates/nativeAJAX.html

结论:

  • 防微杜渐,不能容忍低级错误的出现。比如demo中的第14种情形,就是我在玩客项目中写过的类似的传值代码。当时联调也很顺利,上线后也没有出bug。但是这周却出bug了。之前写代码的时候不够仔细。预防方法:多多review代码,尽量穷尽出bug的可能,并在代码上进行相应的处理。
  • 前后端同学在联调ajax接口之前,应该协商好接口,传值方式,接受值的方式保持一致,最好的是做到能全站统一,维护也比较方便。
  • 编码问题是ajax请求中容易出现的一个问题,因此需要前后端都统一编码。
  • post和get方式的取舍:post相比于get,能传更大的数据,更安全。get获取数据的时候会缓存,用于获取服务器的数据的时候比较适合。而post则更多的用于更新服务器上的数据。
  • 还是post好!

ajax的post方式和get方式比较,以及需要注意的地方的更多相关文章

  1. jQuery中ajax的4种常用请求方式

    jQuery中ajax的4种常用请求方式: 1.$.ajax()返回其创建的 XMLHttpRequest 对象. $.ajax() 只有一个参数:参数 key/value 对象,包含各配置及回调函数 ...

  2. atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o.....

    atitit.ajax bp dwr 3.的注解方式配置使用流程总结 VO9o..... 1. 安装配置 1 1.1. 下载  dwr.jar 1M 1 1.2. 配置注解方式..web.xml 1 ...

  3. atitit.ajax bp dwr 3.的注解方式配置使用流程总结.....

    atitit.ajax bp dwr 3.的注解方式配置使用流程总结..... 1. 下载  dwr.jar 1M 1 2. 配置注解方式..web.xml 1 3. Class 配置 2 4. 测试 ...

  4. 【整理】Ajax异步实现的几种方式总结

    AJAX = Asynchronous JavaScript and XML(异步的 JavaScript 和 XML)AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术.GET ...

  5. ajax的get与post提交方式

    Get方式的用户名验证 1.编写html代码 <form> 用户名[GET]:<input id="usernameID" type="text&quo ...

  6. jQuery AJAX获取JSON数据解析多种方式示例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  7. JQuery的Ajax跨域请求的解决方式

            今天在项目中须要做远程数据载入并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究 ...

  8. ajax传递给后台数组参数方式

    出自:http://blog.csdn.net/lingxyd_0/article/details/10428785 在项目上用到了批量删除与批量更改状态,前台使用了EasyUI的DataGrid,用 ...

  9. ajax中Post和Get请求方式的区别?

    ajax中Post和Get请求方式的区别: 1.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示. 2.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的 ...

  10. ajax异步请求的三种常见方式

    首先先介绍下ajax,ajax(ASynchronous JavaScript And XML)为异步的javascript和xml.所谓的异步和同步是指: 同步:客户端必须等待服务器的响应,在等待期 ...

随机推荐

  1. Swift 获取屏幕宽高

    let screenh = UIScreen.mainScreen().applicationFrame.size.heightlet screenw = UIScreen.mainScreen(). ...

  2. 解决EditText和ScrollView滑动冲突问题

    该类需要调用 OnTouchListener接口 黄色部分是需要更改部分,改为自己的edittext@Override public boolean onTouch(View view, Motion ...

  3. python 面向对象初级篇

    Python 面向对象(初级篇) 概述 面向过程:根据业务逻辑从上到下写垒代码 函数式:将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 面向对象:对函数进行分类和封装,让开发" ...

  4. shr 右移测试

    fdword :DWORD; procedure TForm10.btn1Click(Sender: TObject); var temp:DWORD; begin fdword :=; //7866 ...

  5. java 判断两个list是否相等

    /** * 队列比较 * @param <T> * @param a * @param b * @return */ public static <T extends Compara ...

  6. JDBC

    <java连接数据库> Class.forName("com.mysql.jdbc.Driver")--1:加载驱动 Connection conn=DriverMan ...

  7. hello!

    今天是个星期天 第一次开通了朕的博客 么么哒 感觉很困 唔~晚安zzzzz

  8. c# http get请求与post请求实例

    //http请求工具类 using System;using System.Collections.Generic;using System.IO;using System.Linq;using Sy ...

  9. [LintCode] Sort List 链表排序

    Sort a linked list in O(n log n) time using constant space complexity. Have you met this question in ...

  10. HTML5可视化编辑与微数据

    1.HTML 5 全局 contenteditable 属性 contenteditable 属性规定是否可编辑元素的内容. <p contenteditable="true" ...