【问题标题】:Passing data with ajax and read it with Request.Form[""]使用 ajax 传递数据并使用 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。

标签: javascript c# jquery asp.net webforms


【解决方案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;
    }
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-28
    • 2020-08-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-03
    • 2020-10-13
    • 1970-01-01
    相关资源
    最近更新 更多