【總結】異步調用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));
相關文章
相關標籤/搜索