
一直报404,post和get请求无法返回,
HTML代码
<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<title>08_Ajax的简单封装处理响应.html</title>
</head>
<body>
<h1>08_Ajax的简单封装处理响应.html</h1>
<input type="button" value="测试响应处理" onclick="test1()">
<input type="button" value="测试响应的参数结果处理" onclick="test2()">
<script>
function ajax(options) {
var xhr=new XMLHttpRequest()
var params=''
// params=options.data
for(var atr in options.data){
params=params+atr+'='+options.data[atr]+'&'
}
params=params.substr(0,params.length-1)
//get
if(options.type==='get'){
options.url=options.url+'?'+params
}
xhr.open(options.type,options.url)
//post
if(options.type==='post'){
xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded')
xhr.send(params)
}else{
xhr.send()
}
xhr.onreadystatechange=function () {
if(xhr.readyState===4 && xhr.status===200){
if(xhr.getResponseHeader('Content-type').includes('application/json')){
options.success(JSON.parse(xhr.responseText))
}else{
options.success(xhr.responseText)
}
}else{
options.error(xhr)
}
}
}
function test1() {
ajax({
type:'get',
url:'/login',
data:{'name':'王大禄','pwd':123},
success:function (resp) {
console.log(resp)
},error:function (xhr) {
console.log(xhr.readyState)
}
})
}
function test2() {
ajax({
type: 'post',
url: '/state',
data: {'name': '王大禄', 'pwd': 123},
success:function (res) {
console.log(res)
},error:function () {}
})
}
</script>
</body>
</html>
Python代码
# coding=utf-8
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return 'get请求成功'
elif request.method == 'POST':
return 'post请求成功'
@app.route('/')
def test():
return render_template('03_Ajax的post的参数传递.html')
@app.route('/state', methods=['GET','POST'])
def state():
if request.method == 'GET':
return render_template('04_Ajax的state的使用.html')
elif request.method == 'POST':
# return 'post请求成功'
# return '{"name":"王大禄","age":20}'
return '{"name":"王大禄","age":20}', 200, [("Content-type", "application/json")]
@app.route('/async')
def asynca():
return render_template('05_Ajax的异步与同步使用.html')
@app.route('/fz01')
def fz01():
return render_template('06_Ajax的简单封装.html')
@app.route('/fz02')
def fz02():
return render_template('07_Ajax的简单封装的传参.html')
@app.route('/fz03')
def fz03():
return render_template('08_Ajax的简单封装处理响应.html')
@app.route('/fz04')
def fz04():
return render_template('09_Ajax的简单封装参数默认值.html')
if __name__ == "__main__":
app.run(debug=True)