Я переключился на использование application/json
для запросов POST вместо значения по умолчанию application/x-www-form-urlencoded
, и это, казалось, решило проблему запроса, отправляющего строку "null"
вместо просто пустой строки, когда один из параметров был пуст или отсутствует.
let params = new URLSearchParams(location.search);
let url_id = params.get('id');
let url_language = params.get('language');
const url = 'http://localhost:8080/start-analysis';
$.ajax({
url: url,
type: 'POST',
dataType: 'json',
contentType: 'application/json',
data: JSON.stringify({'playlist': url_id,'language': url_language}),
success: function(results) {
...
},
error: function(response, status, error) {
...
}
});
И сервер получает его как:
class StartAnalysis(BaseHandler):
def post(self):
data = json.loads(self.request.body)
playlist = data['playlist']
language = data['language']