ajax asp后台获取不到post数据,jQuery AJAX调用将数据发布到ASP.Net页面(不是Get但POST)...
選項1.保持服務器端代碼相同
首先刪除kendo.stringify。然后刪除contentType或將其更改為…
"application/x-www-form-urlencoded; charset=utf-8"
…或者將$ .ajax調用更改為:
$.post('DocSummaryDataAsync.aspx',{ vendorId: supplierId,requestType: 'TotalCount' },function (data) { });
選項2.將POST更改為GET
喜歡這個
$.ajax({
async: true,type: "GET",etc.
這將通過QueryString傳遞您的數(shù)據(jù)。如果你刪除kendo.stringify調用,你將訪問所有這樣的值:
string vendorId = Request.QueryString[0];
string businessUnit = Request.QueryString[1];
etc.
選項3.使用原來的$ .ajax調用
如果您使用原來的$ .ajax,則適用以下條件:
Request.Params獲得“QueryString,Form,Cookies和ServerVariables項目的組合集合”。 – this link
你不和任何人一起工作。相反,您需要訪問Request.InputStream。
您可以這樣做:
在服務器端創(chuàng)建映射到所請求的JSON對象的類,例如
public class MyClass
{
// The type (int or string) should probably correspond to the JSON
public int vendorId { get; set; }
public string businessUnit { get; set; }
public string productSegmentId { get; set; }
public string programId { get; set; }
public string productManagerId { get; set; }
public string companyIds { get; set; }
public string expired { get; set; }
public string requestType { get; set; }
}
將Request.InputStream轉換為該類型,然后可以使用它。
public void ProcessRequest()
{
System.IO.Stream body = Request.InputStream;
System.Text.Encoding encoding = Request.ContentEncoding;
System.IO.StreamReader reader = new System.IO.StreamReader(body,encoding);
string json = reader.ReadToEnd();
JavaScriptSerializer serializer = new JavaScriptSerializer();
MyClass myclass = (MyClass)serializer.Deserialize(json,typeof(MyClass));
int vendorId = myclass.vendorId;
string requestType = myclass.requestType;
// etc...
}
protected void Page_Load(object sender,EventArgs e)
{
ProcessRequest();
}
總結
以上是生活随笔為你收集整理的ajax asp后台获取不到post数据,jQuery AJAX调用将数据发布到ASP.Net页面(不是Get但POST)...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dos系统 关闭服务器,如何开启或关闭
- 下一篇: asp.net ajax控件工具集 Au