我無法訪問從HTML文件發送到ASP文件的值。我正在嘗試使用AJAX POST方法將3個值發送到數據庫並插入它們,但無濟於事。無法訪問使用ASP和AJAX發送的值
這裏是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和請求.QueryString方法從發送中檢索值,但沒有返回。當我使用Firefox的Firebug來調試代碼,這是正在發送的:
'阿迪= 1232蘭德爾大道,哈蒙德,LA 70403,USA & LAT = 30.4545509 & LNG = -90.49790769999998'
一點也沒有不管我嘗試將它解析爲單個變量,只返回500的錯誤狀態,我也將其調試爲:
'條件表達式中的數據類型不匹配。'
當試圖發送sql語句時,因爲值都是未定義的。 如果有人可以提供有關如何將值存入變量的任何建議,將不勝感激。
你可以試試這個http://stackoverflow.com/a/30083658/4773983,希望它可以幫助 –
我是否只需要添加「的 asp:ScriptManager>'到我的ASP頁面的頂部? –
不僅如此,還改變了一點你的JS代碼,就像在這個例子中一樣,在你的代碼的靜態方法中添加[WebMethod]在 –