亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用jQuery發送JSON數據

用jQuery發送JSON數據

臨摹微笑 2019-12-19 18:14:37
用jQuery發送JSON數據為什么下面的代碼發送數據為City=Moscow&Age=25而不是JSON格式?var arr = {City:'Moscow', Age:25};$.ajax(    {         url: "Ajax.ashx",         type: "POST",         data: arr,         dataType: 'json',         async: false,         success: function(msg) {             alert(msg);         }     });
查看完整描述

3 回答

?
拉丁的傳說

TA貢獻1789條經驗 獲得超8個贊

因為您沒有指定請求內容類型,也沒有更正JSON請求。下面是發送JSON請求的正確方法:

var?arr?=?{?City:?'Moscow',?Age:?25?};$.ajax({
????url:?'Ajax.ashx',
????type:?'POST',
????data:?JSON.stringify(arr),
????contentType:?'application/json;?charset=utf-8',
????dataType:?'json',
????async:?false,
????success:?function(msg)?{
????????alert(msg);
????}});

要注意的事情:

  • 使用

    JSON.stringify

    方法將javascript對象轉換為JSON字符串,JSON字符串是本機并內置到現代瀏覽器中的。如果您想支持舊的瀏覽器,您可能需要包括

    json2.js

  • 控件指定請求內容類型。

    contentType

    屬性,以便向服務器指示發送JSON請求的意圖。
  • 這個

    dataType: 'json'

    屬性用于您希望從服務器獲得的響應類型。jQuery足夠聰明

    它來自服務器

    Content-Type

    響應頭。因此,如果您有一個Web服務器,它或多或少地尊重HTTP協議,并使用

    Content-Type: application/json

    對于您的請求,jQuery將自動將響應解析為javascript對象到

    success

    回調,這樣您就不需要指定

    dataType

    財產。

要小心的事情:

  • 你所說的

    arr

    不是數組

    ..它是一個具有屬性的javascript對象(

    City

    Age

    )。數組用

    []

    在javascript里。例如

    [{ City: 'Moscow', Age: 25 }, { City: 'Paris', Age: 30 }]

    是一個由兩個對象組成的數組。



查看完整回答
反對 回復 2019-12-20
?
森欄

TA貢獻1810條經驗 獲得超5個贊

因為默認情況下jQuery序列化作為data參數$.ajax..它用$.param若要將數據轉換為查詢字符串,請執行以下操作。

的jQuery文檔$.ajax:

[data參數]被轉換為查詢字符串,如果不是已經轉換為字符串的話。

如果要發送JSON,則必須自己編碼:

data:?JSON.stringify(arr);

請注意JSON.stringify只存在于現代瀏覽器中。



查看完整回答
反對 回復 2019-12-20
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

我為發布JSON編寫了一個簡短的方便函數。

$.postJSON = function(url, data, success, args) {
  args = $.extend({
    url: url,
    type: 'POST',
    data: JSON.stringify(data),
    contentType: 'application/json; charset=utf-8',
    dataType: 'json',
    async: true,
    success: success  }, args);
  return $.ajax(args);};$.postJSON('test/url', data, function(result) {
  console.log('result', result);});



查看完整回答
反對 回復 2019-12-20
  • 3 回答
  • 0 關注
  • 528 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號