javascript – require.js POST请求发现web api返回“解析json时出错”
作者:互联网
根据Spotify Web API Create Playlist,一旦授权成功,具有access_token和一些其他参数的POST应该为用户创建新的播放列表.
链接中的示例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应用程序运行以下代码时,使用请求库,响应统计信息错误解析json.
我在这里失踪了什么?
更新:我尝试根据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);
});
解决方法:
使用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);
});
应该成功.
标签:spotify,javascript,json,node-js 来源: https://codeday.me/bug/20190728/1562005.html