2017-08-10 77 views
0

我得到來自SendGrid的Web API,當我試圖發送者的要求,SendGrid通過取與一的NodeJS 400錯誤的請求:SendGrid使用具有的NodeJS取 - 400錯誤的請求

var emailBody = { 
"personalizations":[ 
    { 
     "to":[ 
      { 
      "email":"[email protected]" 
      } 
     ] 
    } 
], 
"from":{ 
    "email": "[email protected]" 
}, 
"subject": "Send Grid", 
"content": [ 
    { 
     "type":"text/plain", 
     "value": "Send Grid msg" 
    } 
] 
}; 

var emailOptions = { 
method: 'POST', 
headers: { 
    'Authorization': 'Bearer ' + [API_Key], 
    'content-type': 'application/json' 
}, 
body: emailBody 
}; 
fetch(sendGridUrl, emailOptions) 

的請求在郵差使用相同的有效載荷。

+0

別的,他們在他們的反應,這可能有助於送? 如果請求未正確構建,通常會發送錯誤請求。您可能需要仔細檢查是否從Postman傳遞完全相同的請求。 – Chnoch

+0

這是我從res.json得到 「錯誤」:[{ 「消息」: 「錯誤的請求」, 「現場」:空, 「幫助」:空 } ] – davegeo

回答

0

來自node-fetch文檔的示例似乎表明您需要在body上使用JSON.stringify()

報價:

var body = { a: 1 }; 
fetch('http://httpbin.org/post', { 
    method: 'POST', 
    body: JSON.stringify(body), 
    headers: { 'Content-Type': 'application/json' }, 
}) 
    .then(res => res.json()) 
    .then(json => console.log(json)); 

來源:https://github.com/bitinn/node-fetch#usage

+0

是的,這是問題。我認爲這會自動被照顧?使用mailGun時;沒有必要進行stringify。 – davegeo