我无法访问从HTML文件发送到ASP文件的值。我试图使用AJAX POST方法将3个值发送到数据库并插入它们,但无济于事。
以下是发送值的.html代码:
// Builds AJAX request and sends it to ASP page
function sendInfo(x,y,z){
if (window.XMLHttpRequest){
// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else{
// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=stateChanged;
xmlhttp.open("POST","UpdateAJAX.asp",true);
xmlhttp.send("addy="+(x)+
"&lat="+(y)+
"&lng="+(z));
}
// Checks the ready state of the sent response
function stateChanged() {
if (xmlhttp.readyState==4 && xmlhttp.status==200) {
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
else {
document.getElementById("txtHint").innerHTML="Error with ready state: " + xmlhttp.readyState + " and status: " + xmlhttp.status;
}
}
这是'UpdateAJAX.asp'代码:
<%
conn = Server.CreateObject("ADODB.Connection");
conn.Open("DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" + Server.MapPath("Project.mdb"));
' var addy = Request.QueryString("addy");'
' var lat = Request.QueryString("lat");'
' var lng = Request.QueryString("lng");'
var addy = Request.Form("addy");
var lat = Request.Form("lat");
var lng = Request.Form("lng");
var sql="INSERT INTO Location_Info (Address,Latitude,Longitude)"
sql= sql + " VALUES "
sql= sql + "('" + addy + "',"
sql= sql + "'" + lat + "',"
sql= sql + "'" + lng + "')"
Response.Write(sql);
rs = conn.Execute(sql);
Response.Write("Your record has been placed into the database.");
conn.Close();
%>
我已尝试使用Request.Form和Request.QueryString方法从发送中检索值,但不会返回任何内容。当我使用Firefox Firebug调试代码时,这就是发送内容:
'addy = 1232 Randall Avenue,Hammond,LA 70403,USA&amp; lat = 30.4545509&amp; lng = -90.49790769999998'
它不会以我尝试的方式将其解析为单个变量,并且只返回500的错误状态,我也将其调试为:
'标准表达式中的数据类型不匹配。'
尝试发送sql语句时,因为值都是未定义的。 如果有人可以就如何将值输入变量提供任何建议,那将非常感激。
答案 0 :(得分:0)
您需要将http请求的Content-Type
标头设置为application/x-www-form-urlencoded
。在致电xmlhttp.send(...)
之前,请添加以下行:
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");