【总结】异步调用ajax构造URL字符串的几类方法

一般使用ajax异步调用都是这样的格式
php

$.ajax(){
    url:url,
    data:data,
    success: function(re){
        return re;}
       };

        有人说过php,从简单上来讲就是对字符串的处理。今天,我想说的是对data值的处理。ajax

        1、data属于一个对象,但类型有点相似于数组,有键值及数值之分,原始数据包括 {key:value}的形式,在后台接受到的值就变为array['key']=value。
数组

       2、 有时候数据复杂且过多时候,会有使用到input标签,经过表单能够传比较多的参数值,经过form提交便可传值。若没有form时候,这时候必定会有人与当初的我同样束手无策。因此,咱们能够取巧,var data = jQuery('<form action=""></form>').append(jQuery('input').clone()).serialize();在不影响页面总体的状况下只需取到须要的值便可。记住:clone()只指向参数值,内存地址却不同。app

        3、serialize()做用于一个JQuery对象,它可以将DOM元素内容序列化为字符串,用于ajax请求。经过使用serialize()方法,能够提交本页面的全部域serializeArray()没有用过,但若是被传递的对象在数组中则可使用此方法。异步

      4、$.param()方法是serialize()方法的核心,用来对一个数组或对象按照key/value进行序列化。比较通俗易懂: var obj = {a:1,b:2,c:3};ui

            var k = $.param(obj);编码

            alert(k);    //输出a=1&b=2&c=3url

       5、至于toQueryString( ) ,是将一个 hash 转换为 URL 编码字符串形式。这是一种串行化的形式,经常使用于提供复合的参数集,例如为 Ajax 命名空间中的那些对象提供参数(如 Ajax.Request 的 parameters 选项)。spa

举个栗子:code

$H({ action: 'ship', order_id: 123, fees: ['f1', 'f2'], 'label': 'a demo' }).toQueryString() 
$H().toQueryString()
// -> 'action=ship&order_id=123&fees=f1&fees=f2&label=a%20demo'

       6、http_build_query什么是序列化数组的URL的一种经常使用方法。PHP自动反序列化它$_GET

    $fs = array(5, 12, 99);$url = "http://$_SERVER[HTTP_HOST]/?" .
    http_build_query(array('c' => 'asdf', 'fs' => $fs));
相关文章
相关标签/搜索