我想针对在 Flask 上运行的 RESTful API 使用类型为“GET”的 jQuery 的 ajax 调用。在我的请求中,我想将一些数据作为 JSON 发布。
我正在为 POST 请求做同样的事情,它们就像魅力一样工作。但是使用 GET Flask 给了我 400 个错误,并且深入研究它似乎 JSON 在途中被部分 URIEncoded ({%22email%22:%22some@email.com%22})。
我尝试使用 decodeURIComponent,因为我正在 JSON.stringifying ajax 数据参数中的 json,但没有区别。
sessiontoken = "123abc";
jsonData = {"email": email};
$.ajax({
type: 'GET',
crossDomain: true,
url: 'http://someserver/sessions/' + sessiontoken,
dataType: 'json',
processData: false, //added this to see if it helps, it didn't
contentType: "application/json",
async: false,
data: JSON.stringify(jsonData),
success: function(data){
//I'd be happy
},
error: function(data){
//This is where I get as my backend throws a 400 on me due to the screwed up json
}
});
这让我发疯,因为我似乎无法在这个星球上找到遇到同样问题的任何人。我以前一直在 ajaxing 请求,过去从未遇到过这种愚蠢的事情。
编辑:好的,看来我需要放弃我的目标,只需将任何参数作为查询字符串传递,而不是尝试将它们添加到请求正文中。我想这没有什么问题,例如这里讨论的:REST API 最佳实践:在哪里放置参数?