用jq发送请求到后台,然后后台返回数据,可是就是取不到数据为什么!?
谁能帮一下啊!我真的一天 办法都没有,我只有这么点儿分数
帮帮忙吧各位js代码:
function creatXMLhttp() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLhttp");
}
else {
xmlHttp = new XMLHttpRequest();
}
}$(document).ready(function() {
creatXMLhttp();
$.ajax({
type: "GET",
url: "Handler.ashx",
dataType: "json",
success: function(strval) {
var len = strval[i].length;
var obj = document.getElementById("pp");
var chdobj = document.createElement("table");
obj.insertBefore(chdobj, null);
var i;
for (i = 0; i < len; i++) {
var trobj = document.createElement("tr");
chdobj.insertBefore(trobj, null);
var tdobj = document.createElement("td");
trobj.insertBefore(tdobj, null);
text1 = document.createTextNode(strval.CategoryID[i]);
text2 = document.createTextNode(strval.ProductName[i]);
tdobj.insertBefore(text1);
tdobj.insertBefore(text1);
}
}
});
}
)
Handler.ashx.cs代码:public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string constr = @"Data Source=admin-7641acc2c\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=;Pooling=true";
SqlConnection sqlcon = new SqlConnection(constr);
sqlcon.Open();
string strsql = "select CategoryID, ProductName from products";
SqlCommand sqlcom = new SqlCommand(strsql, sqlcon);
SqlDataAdapter adapter = new SqlDataAdapter(sqlcom);
DataSet dt = new DataSet();
adapter.Fill(dt);
string jsonresult = JsonConvert.SerializeObject(dt);
context.Response.Write(jsonresult);
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}}
hml代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript" src="jsonevent.js"></script>
<script type="text/javascript" src="json2.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="pp">
</div>
</form>
</body>
</html>
谁能帮一下啊!我真的一天 办法都没有,我只有这么点儿分数
帮帮忙吧各位js代码:
function creatXMLhttp() {
if (window.ActiveXObject) {
xmlHttp = new ActiveXObject("Microsoft.XMLhttp");
}
else {
xmlHttp = new XMLHttpRequest();
}
}$(document).ready(function() {
creatXMLhttp();
$.ajax({
type: "GET",
url: "Handler.ashx",
dataType: "json",
success: function(strval) {
var len = strval[i].length;
var obj = document.getElementById("pp");
var chdobj = document.createElement("table");
obj.insertBefore(chdobj, null);
var i;
for (i = 0; i < len; i++) {
var trobj = document.createElement("tr");
chdobj.insertBefore(trobj, null);
var tdobj = document.createElement("td");
trobj.insertBefore(tdobj, null);
text1 = document.createTextNode(strval.CategoryID[i]);
text2 = document.createTextNode(strval.ProductName[i]);
tdobj.insertBefore(text1);
tdobj.insertBefore(text1);
}
}
});
}
)
Handler.ashx.cs代码:public class Handler : IHttpHandler {
public void ProcessRequest (HttpContext context) {
string constr = @"Data Source=admin-7641acc2c\SQLEXPRESS;Initial Catalog=Northwind;User ID=sa;Password=;Pooling=true";
SqlConnection sqlcon = new SqlConnection(constr);
sqlcon.Open();
string strsql = "select CategoryID, ProductName from products";
SqlCommand sqlcom = new SqlCommand(strsql, sqlcon);
SqlDataAdapter adapter = new SqlDataAdapter(sqlcom);
DataSet dt = new DataSet();
adapter.Fill(dt);
string jsonresult = JsonConvert.SerializeObject(dt);
context.Response.Write(jsonresult);
context.Response.End();
}
public bool IsReusable {
get {
return false;
}
}}
hml代码:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript" src="jquery-1.2.1.pack.js"></script>
<script type="text/javascript" src="jsonevent.js"></script>
<script type="text/javascript" src="json2.js"></script>
</head>
<body>
<form id="form1" runat="server">
<div id="pp">
</div>
</form>
</body>
</html>
你怎么用jQuery有用xmlHttp的ajax。
娶不到值可能是服务器没有返回值,或请求的地址不对;
还有就是context.Response.Write(jsonresult);这里有没有正确的在页面输出json的字符串。
在浏览器请求这样页面看看有没有在页面输出字符串,没有就错的。
$(document).ready(function() {
$.getJson({
type: "GET",
url: "Handler.ashx",
dataType: "json",
success: function(strval) {
strval = xmlHttp.responseText;
var len = strval.length;
var obj = document.getElementById("pp");
var chdobj = document.createElement("table");
obj.insertBefore(chdobj, null);
var i;
for (i = 0; i < len; i++) {
var trobj = document.createElement("tr");
chdobj.insertBefore(trobj, null);
var tdobj = document.createElement("td");
trobj.insertBefore(tdobj, null);
text1 = document.createTextNode(strval.CategoryID[i]);
text2 = document.createTextNode(strval.ProductName[i]);
tdobj.insertBefore(text1);
tdobj.insertBefore(text1);
}
}
});
}
)我改成这样它提示对象不支持此方法啊
这又是为什么?
刚刚的确是重复使用了,但是这样又该怎么写?
$.getJson(
"Handler.ashx",
"",
function(strval) {
strval = xmlHttp.responseText;
var len = strval.length;
var obj = document.getElementById("pp");
var chdobj = document.createElement("table");
obj.insertBefore(chdobj, null);
var i;
for (i = 0; i < len; i++) {
var trobj = document.createElement("tr");
chdobj.insertBefore(trobj, null);
var tdobj = document.createElement("td");
trobj.insertBefore(tdobj, null);
text1 = document.createTextNode(strval.CategoryID[i]);
text2 = document.createTextNode(strval.ProductName[i]);
tdobj.insertBefore(text1);
tdobj.insertBefore(text1);
}
}
);
}
)或许这样写是对的?
可是第二个参数该怎么写?我没有要向服务器发送的参数啊,我只是单纯的取而已