Flask で実行されている RESTful API に対して、タイプ 'GET' の jQuery の ajax 呼び出しを使用したいと考えています。私のリクエストでは、一部のデータを JSON として投稿したいと考えています。
私は POST リクエストに対してまったく同じことをしていますが、それらは魅力的に機能します。しかし、GET Flask を使用すると 400 エラーが発生し、さらに詳しく調べると、途中で JSON が部分的に URI エンコードされているようです ({%22email%22:%22some@email.com%22})。
私はajaxデータパラメータでjsonをJSON.stringifyingしているので、decodeURIComponentを使用しようとしましたが、違いはありません。
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
}
});
地球上で同じ問題を抱えている人を見つけることができないので、それは私を夢中にさせています. 私は以前にリクエストを ajax してきましたが、過去にこのばかげたことに直面したことはありません。
編集: わかりました、目標をあきらめて、パラメーターをリクエスト本文に追加するのではなく、クエリ文字列として渡す必要があるようです。たとえば、ここで説明されているように、何も問題はないと思います: REST API のベストプラクティス: パラメータを配置する場所?