所需参数缺失错误(PUT 请求)

Posted

技术标签:

【中文标题】所需参数缺失错误(PUT 请求)【英文标题】:Required Parameter Missing Error (PUT Request) 【发布时间】:2017-12-05 05:19:07 【问题描述】:

我在发出此 PUT 请求时不断收到此错误。


  "error" : 
    "status" : 400,
    "message" : "Required parameter position_ms missing"
  

我使用的格式与我之前用于所有 PUT 请求的格式相同,并且在我拨打电话之前就存在进度,所以我不确定发生了什么

$.ajax(
   url: 'https://api.spotify.com/v1/me/player/seek',
   contentType: 'application/json',
   type: 'PUT',
   dataType: 'json',
   headers: 
   'Authorization': 'Bearer ' + access_token
,
data: JSON.stringify('position_ms':progress, "device_id":deviceID),
      success: function(response) 
      
);  

请求负载:

position_ms: 78659, device_id: "9e485fc5aa0b4f0bce19f53571398003ee05d6f5"

device_id : "9e485fc5aa0b4f0bce19f53571398003ee05d6f5" position_ms : 78659

【问题讨论】:

data: JSON.stringify('position_ms':progress, "device_id":deviceID), 从此行中删除 JSON.stringify 因为它从 json 创建字符串。按原样发送 json data: 'position_ms':progress, "device_id":deviceID, 我应该将内容类型更改为什么?还是我应该删除它? 还是不行 你做了什么? 我删除了 JSON.stringify 并将其作为对象发送。删除 ContentType 标头并打印出进度类型,以确保它不是字符串并且它是“数字”类型。 【参考方案1】:

我使用了一个查询字符串并将其添加到 url 中,它起作用了!

                              $.ajax(
                                url: 'https://api.spotify.com/v1/me/player/seek' + '?' + $.param(seekPos),
                                contentType: 'application/x-www-form-urlencoded',
                                type: 'PUT',
                                headers: 
                                  'Authorization': 'Bearer ' + access_token
                                ,
                                data: 'device_id':deviceID,
                                success: function(response) 
                                
                              );

【讨论】:

以上是关于所需参数缺失错误(PUT 请求)的主要内容,如果未能解决你的问题,请参考以下文章

该值是无效的 put 请求

FreeMarker 模板错误:以下已评估为 null 或缺失 |但不是真的

通过 Qt 发送 PUT 请求时错误的请求类型 PUT,适用于 curl

错误:网络错误:使用 axios.put 方法多次请求服务器。但随后捕获错误

python 请求:对天蓝色的 PUT 请求失败并出现 415 错误

向 Spotify API 发出 PUT 请求时出现 401 错误