首先解析一下python中的get和post的一些基本用法:
一、 requests.post() 、requests.get()、request.form.get() 和request.args.get()四者的区别和用法:
1、 requests.post():
参考:https://www.cnblogs.com/puresoul/p/7488700.html
2、requests.get()
参考:https://www.cnblogs.com/puresoul/p/7488488.html
3、flask获取参数方式:
request.form.get("key", type=str, default=None) 获取表单数据
request.args.get("key") 获取get请求参数
request.values.get("key") 获取所有参数
二、ajax中的跨域问题
主要技术:
修改服务器相应的响应头,使其可以相应任意域名。and设置响应头,使其能够响应POST或GET方法。
只需要加入下面三行代码即可轻松解决:
rst = make_response('bbb')
rst.headers['Access-Control-Allow-Origin'] = '*'
rst.headers['Access-Control-Allow-Methods'] = 'POST'
实现代码:
flask中的views.py代码示例:
from flask import make_response
@app.route('/test',methods=['get','post'])
def Test():
if request.method=='GET':
rst = make_response('aaa')
rst.headers['Access-Control-Allow-Origin'] = '*' #任意域名
return rst
else:
rst = make_response('bbb')
rst.headers['Access-Control-Allow-Origin'] = '*'
rst.headers['Access-Control-Allow-Methods'] = 'POST' #响应POST
return rst
html测试代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>index</title>
</head>
<body>
<input type="button" value="Ajax" onclick="DoAjax();" />
<script src="sss/jquery-1.12.4.min.js"></script>
<script>
function DoAjax(){
$.ajax({
url:'http://ajax2.com/test',
type:'POST',
data:{'k1':'v1'},
success:function(arg){ console.log(arg); },
});
};
</script>
</body>
</html>