Если вы нажмете кнопку fill sample data
на странице, на которую вы ссылаетесь, вы получите:
curl -X "PUT" "https://api.spotify.com/v1/me/player/volume?volume_percent=50&device_id=0d1841b0976bae2a3a310dd74c0f3df354899bc8" -H" Принять: application / json "-H" Тип содержимого: application / json "-H" Авторизация: Носитель "
Так что кажется, что вы должны использовать параметры запроса, а не передавать их в теле запроса. ($.ajax
использует data
в качестве параметров запроса для запросов GET, в PUT они отправляются в теле запроса)
var params = {
"volume_percent": volume,
"device_id": deviceid //optional
};
$.ajax({
url: 'https://api.spotify.com/v1/me/player/volume?' + $.param(params),
type: 'PUT',
headers: {
'Authorization': 'Bearer ' + access_token
}
});
Также я советую вызывать его в обработчике нажатий кнопок или при событии mouseup, чтобы избежать многих запросов:
$("#myRange").on("input", function() {
console.log("slider", this.value)
})
$("#myRange").on("mouseup", function() {
console.log("slider mouseup", this.value)
})
$("#myButton").click(function() {
console.log("button", $("#myRange").val())
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="slidecontainer">
<p>Value: <span id="demo"></span></p>
<input type="range" min="0" max="100" value="50" class="slider" id="myRange">
<button id="myButton">Set volume</button>
</div>