使用 ajax 传递数据并使用 Request.Form[""] 读取数据
Posted
技术标签:
【中文标题】使用 ajax 传递数据并使用 Request.Form[""] 读取数据【英文标题】:Passing data with ajax and read it with Request.Form[""] 【发布时间】:2019-01-27 13:02:39 【问题描述】:我尝试将参数从js
脚本传递到aspx.cs
页面。当我省略时:
contentType: "application/json; charset=utf-8"
在 ajax 请求中,我得到了 Request.Form["ORDER"]
sth like %7b%22ORDER_ID%22%3a126333%7d
。意思是这个数据来到aspx.cs
,但是没有解码。
当我添加 contentType
时,我没有收到任何请求。
下面我附上请求。
在aspx.cs
中从Request.Form["ORDER"]
读取参数很重要;
$.ajax(
type: 'POST',
contentType: "application/json; charset=utf-8",
data: JSON.stringify( ORDER_ID: orderKeyId ),
dataType: "json",
url: sUrl,
success: function (data)
var s = 0;
,
error: function ()
var s = 0;
);
【问题讨论】:
WebForms 默认设计为使用表单 urlencoded 数据,而不是 JSON。如果你想使用 JSON,你需要手动从Request
对象反序列化它,或者编写你自己的模型绑定器。
你必须在 aspx.cs 文件中解析一次 json
发布aspx.cs
文件数据
@Ameya Deshpande 这只是简单的 PageLoad 然后 (Request.Form["ORDER_ID"]
这就是你已经在做的事情。问题纯粹是因为您要发送 JSON。
【参考方案1】:
根据@Rory McCrossan 的评论,以下 ajax 状态有效:
$.ajax(
type: 'POST',
contentType: "application/x-www-form-urlencoded",
data: "ORDER_ID=" + encodeURIComponent(orderKeyId),
url: sUrl,
success: function (data)
var s = 0;
,
error: function ()
var s = 0;
);
【讨论】:
以上是关于使用 ajax 传递数据并使用 Request.Form[""] 读取数据的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 5:在路由中获取 ajax 数据并传递给控制器
简单的烧瓶应用服务器使用 ajax 和 jquery 传递数据
Laravel 使用 AJAX 将 Javascript 变量传递给 PHP 并检索那些