一般常規的是提交這種{a:1,b:2}數據,如果我要提交{a:1,b:2,c:{d:3, e:{f:5}}}這種內嵌物件的該怎麼做?
{a:1,b:2}
{a:1,b:2,c:{d:3, e:{f:5}}}
axios預設的contentType是application/json.是支援你這種格式如果你改了application/x-www-form-urlencoded的話.你要將有內嵌物件的欄位JSON化
第一種http頭設定成
Content-Type: application/json
這種JSON資料可以格式化為JSON字串提交
第二種http頭設定成
Content-Type: application/x-www-form-urlencoded
這時候要傳一個key進去,並且js物件也需要格式化成JSON字串,大概這個樣子
data=JSON.stringify({a:1})
內嵌物件和普通物件並沒有什麼本質上的區別,ajax提交資料都需要json化。 如下是我封裝的ajax方法,請參考 xhr.setRequestHeader("Content-type", "application/json"); 和 JSON.stringify(data) 部分
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',你的数据,执行成功后的回调);
看你用什麼提交了,想jquery這種會幫你做自動字串化的就可以直接丟進去。
做一個JSON.stringify操作就行了,後端再自行轉回來就可以了。
常規的和你要提交的數據在本質上沒有區別吧
axios預設的contentType是application/json.是支援你這種格式
如果你改了application/x-www-form-urlencoded的話.你要將有內嵌物件的欄位JSON化
第一種
http頭設定成
這種JSON資料可以格式化為JSON字串提交
第二種
http頭設定成
這時候要傳一個key進去,並且js物件也需要格式化成JSON字串,大概這個樣子
內嵌物件和普通物件並沒有什麼本質上的區別,ajax提交資料都需要json化。
如下是我封裝的ajax方法,請參考
xhr.setRequestHeader("Content-type", "application/json");
和JSON.stringify(data)
部分看你用什麼提交了,想jquery這種會幫你做自動字串化的就可以直接丟進去。
做一個JSON.stringify操作就行了,後端再自行轉回來就可以了。
常規的和你要提交的數據在本質上沒有區別吧