require.js POST请求察觉networkingAPI返回“错误parsingJSON”

根据Spotify Web API创build播放列表 ,一旦授权成功,带有access_token和其他一些参数的POST应该为用户创build一个新的播放列表。 链接中的示例CURL命令

curl -X POST "https://api.spotify.com/v1/users/wizzler/playlists" -H "Authorization: Bearer {your access token}" -H "Content-Type: application/json" --data "{\"name\":\"A New Playlist\", \"public\":false}" 

这对我工作很好。 但是,当我从nodejs应用程序运行下面的代码,使用request库,响应统计Error parsing json

我在这里错过了什么?

更新:我试着改变data form按照request.js的例子。 我也尝试删除stringify调用,并直接传递对象。 错误仍然存​​在。

 var request = require('request'); var authOptions1 = { url: 'https://api.spotify.com/v1/users/' + username + '/playlists', data: JSON.stringify({ 'name': name, 'public': false }), dataType:'json', headers: { 'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json', } }; console.log(authOptions1); request.post(authOptions1, function(error, response, body) { console.log(body); }); 

不要使用data ,请使用body

  var request = require('request'); var authOptions1 = { url: 'https://api.spotify.com/v1/users/' + username + '/playlists', body: JSON.stringify({ 'name': name, 'public': false }), dataType:'json', headers: { 'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json', } }; request.post(authOptions1, function(error, response, body) { console.log(body); }); 

应该做到这一点。

根据https://github.com/mikeal/request#requestoptions-callback

 var authOptions1 = { url: 'https://api.spotify.com/v1/users/' + username + '/playlists', form: { // data = form 'name': name, 'public': false }, json: true, // dataType: json = json: true headers: { 'Authorization': 'Bearer ' + access_token, 'Content-Type': 'application/json', } }; request.post(authOptions1, function(error, response, body) { console.log(body); });