#coding='utf-8'
from bottle import route,run,response,request,CherryPyServer
html='''
<html>
<head>
<title>AJAX测试</title>
<script type="text/javascript">
var xmlHttp;
function createXMLHttpRequest(){
if(window.ActiveXObject){
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
else if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
}
function startRequest(){
createXMLHttpRequest();
xmlHttp.onreadystatechange=handleStateChange;
xmlHttp.open("GET","ajax",true);
xmlHttp.send(null);
}
function handleStateChange(){
if(xmlHttp.readyState==4){
if(xmlHttp.status==200){
alert("The server replied with:" + xmlHttp.responseText);
}
}
}
</script>
</head>
<body>
<form action="#">
<input type="button" value="Start Basic Asynchronous Request" onclick="startRequest();" />
</form>
</body>
</html>
'''
@route("/")
def hello():
return html
@route("/ajax")
def ajax():
#if request.headers.get('X-Requested-With')=='XMLHttpRequest':
if request.is_xhr:
return 'This is an AJAX request'
else:
return 'Not An AJAX request!'
run(host='0.0.0.0',port = 80)
我修改代码让程序遍历了一下request.headers,发现根本就没有’X-Requested-With’这个key。
不知道有没有人遇到过这样的问题,是我用的不对还是框架的问题。
是否还有别的办法来判断一个请求是否为AJAX请求?
请各位前辈帮忙,谢谢!
Python
你用jquery 试 就可以了 你的脚本请求 没有加头信息
xmlHttp.setRequestHeader('X-Requested-With', 'XMLHttpRequest' );