javascript - Masalah objek penyerahan pasca dalam ajax?
世界只因有你
世界只因有你 2017-05-19 10:31:36
0
5
580

Peraturan umum adalah untuk menyerahkan jenis ini {a:1,b:2}数据,如果我要提交{a:1,b:2,c:{d:3,e:{f:5}}}Bagaimana untuk melakukan objek terbenam jenis ini?

世界只因有你
世界只因有你

membalas semua(5)
我想大声告诉你

Kandungan lalaiJenis axios ialah aplikasi/json Ia menyokong format anda
Jika anda menukar aplikasi/x-www-form-urlencoded, anda perlu JSONize medan dengan objek terbenam

.
伊谢尔伦

Pengepala
http pertama ditetapkan kepada

Content-Type: application/json

Data JSON ini boleh diformatkan sebagai rentetan JSON untuk penyerahan

Pengepala
http kedua ditetapkan kepada

Content-Type: application/x-www-form-urlencoded

Pada masa ini, kunci perlu dihantar, dan objek js juga perlu diformatkan menjadi rentetan JSON, yang mungkin kelihatan seperti ini

data=JSON.stringify({a:1})
过去多啦不再A梦

Tiada perbezaan penting antara objek terbenam dan objek biasa data yang diserahkan perlu jsonized.
Berikut ialah kaedah ajax yang saya enkapsulasi, sila rujuk bahagian xhr.setRequestHeader("Content-type", "application/json");JSON.stringify(data)

function ajax(url, method, data, callback){
    var xhr = new XMLHttpRequest();
    xhr.timeout = 3000;
    xhr.ontimeout = function(){
        console.log('网络超时, 请稍后重试!');
    };
    xhr.onload = function(){
        var s = xhr.status;
        if((s >= 200 && s < 300) || s == 304){
            var res = xhr.responseText;
            typeof callback == 'function' && callback(res);
        }
    };
    xhr.onerror = function(){
        console.log('网络问题, 请稍后重试!');
    };
    data = (method != 'GET' && typeof data=='object')?JSON.stringify(data):null;
    xhr.withCredentials = true;
    xhr.open(method, url, true);
    xhr.setRequestHeader("Content-type", "application/json");
    try{
        xhr.send(data);
    }catch(e){
        console.log('网络不佳, 请稍后重试!');
    }
}
ajax('你的链接','POST',你的数据,执行成功后的回调);
習慣沉默

Ia bergantung pada apa yang anda gunakan untuk menghantar Jika anda fikir jquery boleh melakukan rentetan automatik untuk anda, anda boleh memasukkannya terus.

Hanya lakukan operasi JSON.stringify, dan bahagian belakang akan menukarnya semula dengan sendirinya.

phpcn_u1582

Tiada perbezaan penting antara data biasa dan data yang ingin anda serahkan

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan