关于ajax的一个问题,高手来~~~急急急急!

lionz1023 2010-03-25 11:18:05
发送小数据时没有问题,当数据量过大时就会提示the system cannot locate the resource specified

代码

var xmlHttp
function showCustomer1(id,a,b,c)
{
var url="pl1.asp?sid=" + Math.random() + "&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c
xmlHttp=GetXmlHttpObject(stateChanged1);
xmlHttp.open("POST", url , true);
xmlHttp.send(null);

}
function stateChanged1()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera")
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"

if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp
}
}


请高手来,急急急急急急急急急急急急急急~~
...全文
80 点赞 收藏 19
写回复
19 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
lionz1023 2010-03-25
[Quote=引用 1 楼 sandy945 的回复:]
var url="pl1.asp?sid=" + Math.random() + "&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c
xmlHttp=GetXmlHttpObject(stateChanged1);
xmlHttp.open("POST", url , true);
xmlHttp.send(……
[/Quote]
这个改了为什么得不到数据了
回复
阿非 2010-03-25
var url="pl1.asp?sid=" + Math.random() + "&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c
xmlHttp=GetXmlHttpObject(stateChanged1);
xmlHttp.open("POST", url , true);
xmlHttp.send(null);


你既然都以 post 方式提交了,为何还用url 传递大数据呢

这样写

var url="pl1.asp?sid=" + Math.random()
xmlHttp=GetXmlHttpObject(stateChanged1);
xmlHttp.open("POST", url , true);
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);
回复
lionz1023 2010-03-25
晕死 找到原因了
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
写法不对,6L的写法正确。
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');

谢谢朋友们了!
回复
lionz1023 2010-03-25
(<%=request.QueryString("id")%> 是可以取到的
http://localhost/sanduo-new/list_c.asp?id=132
下的评论 所以用request.QueryString("id")可以取道

id都能传过去 用get方式也能正常提交 就是 content数据大了就提示
the system cannot locate the resource specified
回复
阿非 2010-03-25
request.QueryString

=》

request.Form

QueryString 获取的是 get 传递过来的参数

Form 获取的是 post 传递过来的参数
回复
lionz1023 2010-03-25
function showCustomer1(id,a,b,c)
{
var url="pl1.asp?sid=" + Math.random()
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.open("POST", url , true);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);

document.getElementById("s_con").style.display="none";
document.all("content").value="";
}

这样写应该对了,
但是还是没有取到值
response.write sql的时候
insert into pl(a_id,content,ip,name,addtime) values(,'','','Guest','')

我的提交函数是
<input type="button" name="g" style="font-size:20px; padding-bottom:5px; " value="ac" onclick="showCustomer1(<%=request.QueryString("id")%>,form.content.value,form.ip.value,form.t.value);"/>(1-2000)
用get时content短的话 可以写入数据库。改成上面的就得不到数据了。
晕,大虾帮忙啊@
回复
lionz1023 2010-03-25
var url="pl1.asp?sid=" + Math.random()
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.open("POST", url , true);
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);
写 提交有js错误 char:1 未指定错误
回复
阿非 2010-03-25
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.open("POST", url , true);

位置错了

应该先 open 在 setRequestHeader

如下

xmlHttp.open("POST", url , true);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
回复
lionz1023 2010-03-25
pl.js


var xmlHttp

function showCustomer1(id,a,b,c)
{
var url="pl1.asp?sid=" + Math.random()
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.open("POST", url , true);
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);

document.getElementById("s_con").style.display="none";
document.all("content").value="";
}
function stateChanged()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
var a;
a=xmlHttp.responseText;
document.getElementById("pl").innerHTML=a
}
}
function GetXmlHttpObject(handler)
{
var objXmlHttp=null

if (navigator.userAgent.indexOf("Opera")>=0)
{
alert("This example doesn't work in Opera")
return;
}
if (navigator.userAgent.indexOf("MSIE")>=0)
{
var strName="Msxml2.XMLHTTP"

if (navigator.appVersion.indexOf("MSIE 5.5")>=0)
{
strName="Microsoft.XMLHTTP"
}
try
{
objXmlHttp=new ActiveXObject(strName)
objXmlHttp.onreadystatechange=handler
return objXmlHttp
}
catch(e)
{
alert("Error. Scripting for ActiveX might be disabled")
return
}
}
if (navigator.userAgent.indexOf("Mozilla")>=0)
{
objXmlHttp=new XMLHttpRequest()
objXmlHttp.onload=handler
objXmlHttp.onerror=handler
return objXmlHttp[code=VBScript]

}
}

[/code]
pl1.asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="inc/conn.asp"-->

<%

id=request.Form("q")
content=request.Form("a")
UserIP=request.Form("b")
t=request.Form("c")
sql="insert into pl(a_id,content,ip,name,addtime) values("&id&",'"&Content&"','"&UserIP&"','Guest','"&t&"')"
conn.execute sql
response.Write sql
%>

回复
阿非 2010-03-25
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");

这句写了么

把现在的贴一下
回复
lionz1023 2010-03-25
[Quote=引用 9 楼 chinmo 的回复:]
多大就有问题?是否超过了限制?
[/Quote]
200 多个字节吧。
[Quote=引用 10 楼 sandy945 的回复:]
xmlHttp.open("POST", url , true);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);
------……
[/Quote]
修改了 不过还是取不到!
回复
阿非 2010-03-25
xmlHttp.open("POST", url , true);
xmlHttp.setRequestHeader("content-type","application/x-www-url-encoded");
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);
------------------------------------------------------------------------

request
=>
Request.Form

使用 Request.Form 获取 post 提交的数据
回复
多大就有问题?是否超过了限制?
回复
lionz1023 2010-03-25
[Quote=引用 5 楼 sandy945 的回复:]
改成 post ,不要用 get

你获取数据的部分 是怎么写的
[/Quote]
function showCustomer1(id,a,b,c)
{
var url="pl1.asp?sid=" + Math.random()
xmlHttp=GetXmlHttpObject(stateChanged);
xmlHttp.open("POST", url , true);
xmlHttp.send("&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c);

document.getElementById("s_con").style.display="none";
document.all("content").value="";
}

p1.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!--#include file="inc/conn.asp"-->
<%

id=request("q")
content=request("a")
UserIP=request("b")
t=request("c")
sql="insert into pl(a_id,content,ip,name,addtime) values("&id&",'"&Content&"','"&UserIP&"','Guest','"&t&"')"
conn.execute sql
response.Write sql
%>
回复
never exists 2010-03-25
xmlHttp.open("POST", url , true);
这里 url 换成你处理的地址pl1.asp
回复
never exists 2010-03-25
var url="sid=" + Math.random() + "&q=" + id+ "&a=" + escape(a)+ "&b=" + b+ "&c=" + c
xmlHttp=GetXmlHttpObject(stateChanged1);
xmlHttp.open("POST", url , true);
xmlHttp.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
xmlHttp.send(url);
回复
阿非 2010-03-25
改成 post ,不要用 get

你获取数据的部分 是怎么写的

回复
lionz1023 2010-03-25
get 也一样 主要是接受大数据的时候就提示出错~
回复
never exists 2010-03-25
晕 如果不用Post 改成 xmlHttp.open("GET", url , true);吧

POST方式 你语法不对
回复
相关推荐
发帖
ASP
创建于2007-09-28

2.8w+

社区成员

ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
申请成为版主
帖子事件
创建了帖子
2010-03-25 11:18
社区公告
暂无公告