function sendRequestToDelicious()
{
var xmlhttp=false;
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
try {
xmlhttp = new XMLHttpRequest();
} catch (e) {
xmlhttp=false;
}
}
if (!xmlhttp && window.createRequest) {
try {
xmlhttp = window.createRequest();
} catch (e) {
xmlhttp=false;
}
}
var url = "http://localhost:52271/WebForm1.aspx";
var params = "q=hello";
xmlhttp.open("POST", url, true);
//Send the proper header information along with the request
xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xmlhttp.setRequestHeader("Content-length", params.length);
xmlhttp.send(params);
}
在我的ASP.NET应用程序中,我正在从page_load事件中读取流,但我没有收到数据。我做错了什么?
ASP.NET中的C#代码:
public partial class WebForm1 : System.Web.UI.Page
{
SqlConnection conn;
protected void Page_Load(object sender, EventArgs e)
{
StreamReader reader = new StreamReader(Page.Request.InputStream);
String data = reader.ReadToEnd();
}
...
答案 0 :(得分:1)
看起来这篇文章包含了您要执行的操作的准确代码:
Fake a form submission with C# WebClient
如果您只需要Page_Load中的数据,则不需要使用JavaScript执行此操作 - 对吗?
我个人不再使用XmlHttpRequest对象了。我放弃了它,转而使用jQuery AJAX函数。成功发布的回调函数可以很容易地从服务器捕获响应。
以下是如何使用jQuery AJAX执行此操作的示例:
$.ajax(
{
type : 'POST',
url : 'http://localhost:52271/WebForm1.aspx',
dataType : 'json',
data:
{
q:'hello'
},
success : function(data)
{
$('mydiv').text(data.msg).show(500);
},
error : function(XMLHttpRequest, textStatus, errorThrown)
{
$('mydiv').text('There was an error.').show(500);
}
}
);