使用AJAX刷新Spotify令牌时遭遇Error 400(错误请求)问题
修复Spotify刷新令牌请求400错误的问题
你的代码存在几个关键错误,导致请求被Spotify API拒绝:
- jQuery的AJAX配置里,请求头的配置项是小写的
headers,不是Headers,框架对选项名称大小写敏感。 btoa的字符串拼接语法错误,正确的写法是btoa(ClientID + ':' + ClientSecret),必须用加号把ClientID、冒号、ClientSecret拼接成完整字符串。grant_type参数值错误,Spotify API要求该值为refresh_token,不是你写的refreshtoken。- jQuery中传递请求参数要用
data选项,不是body;另外json: true不是合法配置,应该用dataType: 'json'指定预期返回的JSON格式。
修复后的代码如下:
$.ajax({ url: 'https://accounts.spotify.com/api/token', type: 'POST', headers: { 'Authorization': 'Basic ' + btoa(ClientID + ':' + ClientSecret) }, data: { grant_type: 'refresh_token', refresh_token: RefreshToken }, dataType: 'json' });
另外不需要手动设置Content-Type: application/x-www-form-urlencoded,当你用data传递对象时,jQuery会自动处理请求头和参数编码,避免格式不匹配的问题。
内容的提问来源于stack exchange,提问作者Lucy
相关产品推荐
相关产品推荐

