为何用ajax向同一个页面发送post和get请求,post请求服务器端的代码不执行,而换成get请求时就一切正常?

以下是向服务器发送post请求时调用的函数:functionButton1_onclick(){createXMLHttpRequest();varname=docume... 以下是向服务器发送post请求时调用的函数:
function Button1_onclick()
{
createXMLHttpRequest();

var name = document.getElementById("Text1").value; var password = document.getElementById("Text2").value;
var data = "<persons><person>";
data += "<name>" + name + "</name>";
data += "<password>" + password + "</password>";
data += "</person></persons>";

xmlHttp.open("post", "three.aspx", true);
xmlHttp.onreadystatechange = process;
xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlHttp.send(data);
}

发送get请求时就是改open方法里的第一个参数为get,还有把设置请求头部的代码注释,外加send方法改成发送null。我在请求的页面onload函数打了断点,get方法会使onload执行,但post方法就不会执行服务器端代码,什么反应也没有。
请哪位大侠指教。谢谢。一下是所请求的页面的服务器端后台代码:
public partial class three : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Page.IsCallback)
{
Stream sm = Request.InputStream;
string xml = sm.ToString();
XmlDocument xmldoc = new XmlDocument();
xmldoc.Load(sm);
Response.Write(xmldoc.OuterXml);
Response.End();
}
}
}
展开
 我来答
blacklong
2012-10-22 · TA获得超过1500个赞
知道大有可为答主
回答量:2745
采纳率:0%
帮助的人:1248万
展开全部
.net会在页面的表单中隐藏一些hidden框的,传递一些信息的。
你直接ajax提交的话,这些信息都没有提交,所以后台状态不对。
把IsCallback的判断去掉吧,自己传递一些参数作为标志位,进行判断。
追问
谢谢。这个的确可以解决判断回发,回调和第一次加载。但是post请求不执行服务器端代码是怎么回事呢?
lifei6671
2012-10-20 · TA获得超过9228个赞
知道大有可为答主
回答量:3899
采纳率:25%
帮助的人:2767万
展开全部
请查看一下你服务器端是使用那种方式来接受数据的.

估计你服务器端用的GET方法来接受数据.
更多追问追答
追问
关键不是在服务器端获取不到参数,而是用post方法发送请求时,根本就不运行服务器端的代码,断点打在protected void Page_Load(object sender, EventArgs e) 这个方法的第一行都不进,但是用get方法就正常,到了这里就进了断点了。这是怎么回事呢?
追答
先别用ajax方式提交, 你先试着用表单的方式提交,看看报的什么错! 要不我们也没办法分析哪错了!
还有就是,你的load方法里面,为什么初始化流呢?

貌似在web编程中很少用到这个对象吧!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友db73199
2012-10-20 · 超过13用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:29万
展开全部
你的页面是是不是有 if(page.ispostback)这样的东东啊
追问
我的服务器页面onload事件里只有个if(Page.IsCallback)判断。但奇怪的是不管是页面第一次加载还是用ajax请求页面,代码执行到这里都是返回false。这是另一个奇怪的问题了。能告诉这是怎么回事么?这个IsCallback属性当是回调而不是回发的时候应该返回true啊,但怎么是false?什么原因?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式