2015-08-13 36 views
-1

我有request.js這個POST請求發送JSON:錯誤在POST請求體request.js

request.post({ 
    uri: "https://app.bom.com/app/search/savedSearch", 
    headers: { 
     "Content-Type": "application/json;charset=UTF-8" 
    }, 
    jar: jar, 
    json: true, 
    body: { 
     "objectType" : "items", 
     "name": "", 
     "defaultSearch": false, 
     "criteriaRows": [{ 
     "id": 0, 
     "value": { 
      "name": "item_number", 
      "dataType": "string", 
      "operator": "2", 
      "value": "161225", 
      "value1": "" 
     } 
     }] 
    } 
    }) 
    .on('data', function(data) { 
    console.log(data); 
    }); 

請求永遠是錯誤;而如果我禁用json: true並在身體上使用JSON.stringify,則請求返回並返回我想要的結果。我在這裏做錯了什麼?

+1

什麼是錯誤?服務器返回什麼?服務器返回什麼狀態? – Joseph

+0

不應該是'body:{}'實際上'data:{}'其中數據請求傳遞給服務器的參數 – joyBlanks

回答

0

如果您使用json屬性,則不需要設置標題;如果將對象直接放入json屬性中,它將作爲正文發送。

request.post({ 
    uri: "https://app.bom.com/app/search/savedSearch", 
    jar: jar, 
    json: { 
     "objectType" : "items", 
     "name": "", 
     "defaultSearch": false, 
     "criteriaRows": [{ 
     "id": 0, 
     "value": { 
      "name": "item_number", 
      "dataType": "string", 
      "operator": "2", 
      "value": "161225", 
      "value1": "" 
     } 
     }] 
    } 
    }) 
    .on('data', function(data) { 
    console.log(data); 
    }); 
0

當您設置爲json:true時,它會嘗試將您的響應解析爲JSON。檢查你的回覆是否是json