怎么用XMLHttpRequest的POST方式发送

yourdecision 2006-09-26 06:43:56
var xmlhttp;
function Button1_onclick()
{
var data = "info={'FullName':'俊军,'Company':'公司,'Address':'这里}";
send(data);
}
function send(arg)
{
CreateXMLHttpRequest();
xmlhttp.onreadystatechange = callhandle;
xmlhttp.open("POST","Default.aspx?goback=yes",true);
xmlhttp.send(arg);

}
function CreateXMLHttpRequest()
{
if (window.ActiveXObject)
{
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
else if (window.XMLHttpRequest)
{
xmlhttp = new XMLHttpRequest();
}
}
function callhandle()
{
if (xmlhttp.readyState == 4)
{
if(xmlhttp.status == 200)
{
var dzb = eval("(" + xmlhttp.responseText +")");
alert(dzb.Address);
}
}
}

请问,我这样发送对吗!如果可以,那么在Default.aspx.cs文件中我怎么没取得我POST的数据data呢?谢谢指教!!
...全文
843 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
在cs文件中
Response.ContentType = "application/x-www-form-urlencoded;";
这样是不对的
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
谢谢 大家了,问题解决了,加上
xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded;");
就可以了,
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
strContent是:
info={'FullName':'王继军','Company':'上海天正','Address':'田林路388号'}


www_123du_com 2006-09-27
  • 打赏
  • 举报
回复
不是这意思,是把其中的数据读出来。

System.IO.StreamReader red = new StreamReader(Request.InputStream,System.Text.Encoding.UTF8/*有可能是gb2312*/);
string strContent = red.ReadToEnd();
//要看strContent
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
Request.InputStream
{System.Web.HttpInputStream}
[System.Web.HttpInputStream]: {System.Web.HttpInputStream}
base {System.MarshalByRefObject}: {System.Web.HttpInputStream}
CanRead: true
CanSeek: true
CanTimeout: false
CanWrite: false
Length: 82
Position: 0
ReadTimeout: “Request.InputStream.ReadTimeout”引发了“System.InvalidOperationException”类型的异常
WriteTimeout: “Request.InputStream.WriteTimeout”引发了“System.InvalidOperationException”类型的异常
www_123du_com 2006-09-27
  • 打赏
  • 举报
回复
先跟踪一下,在后台把:Request.InputStream输出来看一下。
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
var dzb = eval("(" + xmlhttp.responseText +")");
alert(dzb.Address);
应为后台的cs文件出错,所以前台没有弹出来
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
跟踪发现Request.Form["info"]为null
Request.QueryString["goback"].ToString() 是可以取到的
yourdecision 2006-09-27
  • 打赏
  • 举报
回复
Default.aspx.cs如下

using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Newtonsoft.Json;

public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (Request.QueryString.Keys.Count == 0)
return;
if (Request.QueryString["goback"].ToString() == "yes")
{
AddressBook dbs = (AddressBook)JavaScriptConvert.DeserializeObject(Request.Form["info"].ToString(), typeof(AddressBook));
dbs.Address = "haha";
string output = JavaScriptConvert.SerializeObject(dbs);
Response.Write(output);
Response.Flush();
Response.Close();
}
}
}
public class AddressBook
{
string _fullName = "wjj";
string _company = "tianzheng";
string _address = "田林路";

public string FullName
{
get { return _fullName; }
set { _fullName = value; }

}
public string Company
{
get { return _company; }
set { _company = value; }
}
public string Address
{
get { return _address; }
set { _address = value; }
}
}
孟子E章 2006-09-26
  • 打赏
  • 举报
回复


alert(xmlhttp.responseText)看看是什么


你的cs怎么写的?


var dzb = eval("(" + xmlhttp.responseText +")");
alert(dzb.Address);

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧