用ajax提交資料到ashx用JSON.stringify格式化參數後在伺服器端取不到值?[轉載至:http://q.cnblogs.com/q/34266/]

來源:互聯網
上載者:User

前台代碼:

        $(function () {
var model = function (key) {
this.key = key;
}

var m = new model("abc");

$.ajax({
url: '/Demo.ashx',
type: 'POST',
data: JSON.stringify(m),
contentType: 'application/json; charset=utf8',
cache: false,
dataType: 'text',
success: function (data) {
alert(data);
},
error: function (xhr) {
alert("出現錯誤,請稍後再試:" + xhr.responseText);
}
});
});

Demo.ashx:

    public class Demo : IHttpHandler
{

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("Hello World" + context.Request.Form["key"]);
}

public bool IsReusable
{
get
{
return false;
}
}
}

運行後彈出 "Hello World":

改為下面這樣就可以了:

$.ajax({
url: '/Demo.ashx',
type: 'POST',
//data: JSON.stringify(m),
//contentType: 'application/json; charset=utf8',
data:{key:"abc"},
cache: false,
dataType: 'text',
success: function (data) {
alert(data);
},
error: function (xhr) {
alert("出現錯誤,請稍後再試:" + xhr.responseText);
}
});

有人知道為什麼嗎?

ASP.NET Javascript Post JSON.stringifyartwl | 專家六級 | 園豆:11082
提問於:2012-04-05 22:20    < > 博問關注問題功能上線啦!

收藏  最佳答案

0

使用context.Request.InputStream去接看看,

 data:{key:"abc"},這個只能做個demo,大的對象你怎麼寫,那不搞死。
收穫園豆:50回複 | 小AI | 菜鳥二級 |園豆:223 | 2012-04-05 22:22 

我主要是想弄明白為什麼用 JSON.stringify格式化參數 取不到值

回複 | artwl | 園豆:11082 (專家六級) | 2012-04-05 22:23 | 

用context.Request.InputStream 可以取到:

 

只是不明白為什麼用 context.Request.Form["key"] 取不到值

回複 | artwl | 園豆:11082 (專家六級) | 2012-04-05 22:27 | 

@artwl: 你跟蹤一下JSON.stringify(m)的結果,看看和{key:"abc"}有什麼區別。去到之後你就隨便玩吧,還原序列化。

回複 | 小AI | 園豆:223 (菜鳥二級) | 2012-04-05 22:29 | 

@artwl: 日,趕緊給分,強要了。。。

回複 | 小AI | 園豆:223 (菜鳥二級) | 2012-04-05 22:30 | 

@小AI: 哈哈,行,給分

回複 | artwl | 園豆:11082 (專家六級) | 2012-04-05 22:33 |   

 

正在載入編輯器...回答被採納可獲得懸賞園豆。     上傳圖片 編輯器載入中...富文本區

工具列

撤銷 (Ctrl Z) 重做 (Ctrl Y)  
選擇文本顏色

 
選擇背景顏色

 
引用   粗體 (Ctrl B) 斜體 (Ctrl I) 底線 (Ctrl U) 刪除線  
無序編號
有序編號
  靠左對齊 置中對齊 靠右對齊 減少縮排 增加縮排 清除格式   插入/編輯連結 清除連結 插入/編輯圖片 編輯 HTML 原始碼 切換全螢幕模式 插入代碼(推薦)

 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.