Ajax POST 不适用于 Flask / IIS7.5
Ajax POST doesn't work with Flask / IIS7.5
因为我开始发疯了我真的需要你的帮助xD
我想做一个简单的 Ajax POST,我想用它发送 JSON 数据到 python 脚本,以便稍后将其保存在服务器上。
我在后端使用 python 3.6.4(anaconda3 with wfastcgi.py),在前端使用 Javascript(jQuery)和 Flask。
这是我从 Chrome 开发工具 -> 网络中得到的:
POST 1
来自本地 python 服务器 Werkzeug,POST 2
来自 IIS 7.5。
我展示了两者,希望它能帮助找到问题所在。我只需要一种修复 IIS 的方法。
我已经试过了:
<customHeaders>
具有访问控制允许来源等
<requestFiltering>
与 <add verb="POST" allowed="true" />
或 <verbs allowUnlisted="true">
将 OPTIONSVerbHandler
动词从 OPTIONS 更改为 POST(不要问我,在这里找到)
但这没有帮助。
使用 Failed Request Tracing Rules
模块我能够找到这个:
但我不知道在 IIS 的什么地方我可以用 FastCgi 改变任何东西以使其与 POST 一起工作。
我的AjaxPOST:
$.ajax({
url: "/static/scripts/saveData.py",
type: "post",
data: JSON.stringify(tableObject),
dataType: "json",
success: function(response) {
console.log(response);
},
error: function(error){
console.log(error)
}
});
ps。 Link 到文件有效,因为当我将 POST 更改为 GET 时,我从 console.log(response)
.
中的 saveData.py 获取代码
我想你忘记在 flask routs 中注册这个方法了:
@app.route('/login', methods=['POST', 'GET'])
太棒了,在网上查找了将近 2 天,尝试了不同的方法使其发挥作用后,我终于找到了发送 Ajax POST.
的方法
基本上我必须将目标 url "/static/scripts/saveData.py"
从本地地址更改为 Flask url "/annotate"
这使我能够使用 POST 和letter 在 views.py(我的主烧瓶视图文件)中处理它。
$.ajax({
url: "/annotate",
type: "post",
data: JSON.stringify(tableObject),
//data: tableObject,
contentType: "application/json"
});
现在,为什么这个工作正常,POST 到正常的 .py 脚本不工作,我不知道。
但至少现在我可以使用这些数据了。
因为我开始发疯了我真的需要你的帮助xD
我想做一个简单的 Ajax POST,我想用它发送 JSON 数据到 python 脚本,以便稍后将其保存在服务器上。
我在后端使用 python 3.6.4(anaconda3 with wfastcgi.py),在前端使用 Javascript(jQuery)和 Flask。
这是我从 Chrome 开发工具 -> 网络中得到的:
POST 1
来自本地 python 服务器 Werkzeug,POST 2
来自 IIS 7.5。
我展示了两者,希望它能帮助找到问题所在。我只需要一种修复 IIS 的方法。
我已经试过了:
<customHeaders>
具有访问控制允许来源等
<requestFiltering>
与 <add verb="POST" allowed="true" />
或 <verbs allowUnlisted="true">
将 OPTIONSVerbHandler
动词从 OPTIONS 更改为 POST(不要问我,在这里找到)
但这没有帮助。
使用 Failed Request Tracing Rules
模块我能够找到这个:
但我不知道在 IIS 的什么地方我可以用 FastCgi 改变任何东西以使其与 POST 一起工作。
我的AjaxPOST:
$.ajax({
url: "/static/scripts/saveData.py",
type: "post",
data: JSON.stringify(tableObject),
dataType: "json",
success: function(response) {
console.log(response);
},
error: function(error){
console.log(error)
}
});
ps。 Link 到文件有效,因为当我将 POST 更改为 GET 时,我从 console.log(response)
.
我想你忘记在 flask routs 中注册这个方法了:
@app.route('/login', methods=['POST', 'GET'])
太棒了,在网上查找了将近 2 天,尝试了不同的方法使其发挥作用后,我终于找到了发送 Ajax POST.
的方法基本上我必须将目标 url "/static/scripts/saveData.py"
从本地地址更改为 Flask url "/annotate"
这使我能够使用 POST 和letter 在 views.py(我的主烧瓶视图文件)中处理它。
$.ajax({
url: "/annotate",
type: "post",
data: JSON.stringify(tableObject),
//data: tableObject,
contentType: "application/json"
});
现在,为什么这个工作正常,POST 到正常的 .py 脚本不工作,我不知道。
但至少现在我可以使用这些数据了。