好的!!我正在构建一个flask web应用程序,我想使用Ajax发送一些json数据
这是我的密码!!对于HTML和js:
Check your Grades
welcome to grade predictor app,
Dear Plateform,
je viens
de
et
dans
l’option
name=”OPTION_RIGHT” id=”OPTION_RIGHT” data-provide=”typeahead” placeholder=”(choisissez votre option )” required>
j’ai obtenu
% à l\’exetat
send
var csrf_token = “{
{ csrf_token() }}”;
// this will send a token each time before a session started
$.ajaxSetup({
beforeSend: function(xhr, settings) {
if (!/^(GET|HEAD|OPTIONS|TRACE)$/i.test(settings.type) && !this.crossDomain) {
xhr.setRequestHeader(“X-CSRFToken”, csrf_token);
}
}
});
//submit form data
$(“form#predict-form”).submit(function(e){
console.log(“form submitted”)
e.preventDefault();
var data = {
}
var Form = this;
//Gathering the Data
//and removing undefined keys(buttons)
$.each(this.elements, function(i, v){
var input = $(v);
data[input.attr(“name”)] = input.val();
delete data[“csrf_token”];
delete data[“undefined”];
});
data[“DIPPERC”] = data[“DIPPERC”]/100.0
//Form Validation goes here….
//Save Form Data……..
$.ajax({
cache: false,
url : “{
{url_for(‘predict’)}}”,
type: “POST”,
contentType: “application/json; charset=utf-8”,
dataType: “json”,
data : JSON.stringify(data),
success : function(callback){
//Where $(this) => context == FORM
console.log(“data sucessfuly submitted”)
console.log(JSON.parse(callback));
}
,
error : function(){
console.log(‘erroor’)
}
});
})
我已经尽了一切可能,但还是出了400错误!
我检查了所有相关的问题,但什么也没查到。在
但我的研究表明,400误差可能是由以下原因引起的:从here可以看出:The HTTP 400 Bad Request response status code indicates that the server could not understand the request due to invalid syntax. The client should not repeat this request without modification.Csrf令牌丢失this我已经添加了该令牌,并尝试使用将数据发送到路由csrf.豁免但什么都没有
未设置ContentType和applicationType(已设置但未设置)
已经查过官方的烧瓶文件了他们说:(来自)
我正在发送正确的json数据
那么是什么导致了这个问题???
这是我的简单视图函数
^{pr2}$
注意,在我的测试中,当我通过python直接将数据发送到我的路由时,它使用以下代码:def test_1_can_connect_post(self):
“””
Test API can create a (POST request)
“””
new_student = {
‘DIPPERC’:0.60, ‘SCHOOL_RIGHT’:’itfm/bukavu’, ‘OPTION_RIGHT’:’elec indust’
}
res = self.client().post(‘predictions/predict/’, data=json.dumps(new_student), content_type=’application/json’)
self.assertEqual(res.status_code, 201)
Ps:我确信我遗漏了一点东西,但不知道是什么,可能是ajax异步出错了。。。。。在