【问题标题】:Ajax data not passing to controllerAjax 数据未传递给控制器
【发布时间】:2020-09-17 09:49:54
【问题描述】:

我有一个问题,即 ajax 中的数据没有通过 sessionStorage 项。我尝试使用 JSON.stringify 并添加了 contentType: 'application/json' 但仍然没有通过。这可以使用 POST 方法完成吗?另外,我已经调试并返回了这些 sessionStorage,因此问题不是因为 sessionStorge 不包含数据。

这是我的功能:

    function functionA() {
        $.ajax({
            url: URLToApi,
            method: 'POST',
            headers: {
                sessionStorage.getItem('token')
            },
            data: {
                access_token: sessionStorage.getItem('pageToken'),
                message: $('#comment').val(),
                id: sessionStorage.getItem('pageId')
            },
            success: function () {
                $('#success').text('It has been added!"');
            },
        });
    }

【问题讨论】:

    标签: asp.net ajax asp.net-web-api


    【解决方案1】:

    在控制器的操作中检查以下内容

    1. 控制器中应该有匹配的动作
    2. 参数名称应与您在 ajax 中传入数据的名称相同

    3. 方法类型应与控制器中动作的ajax POST相同。

     function AddPayment(id, amount) {
            var type = $("#paymenttype").val();
            var note = $("#note").val();
            var payingamount = $("#amount").val();
            $('#addPayment').preloader();
            $.ajax({
                type: "POST",
                url: "/Fixed/AddPayment",
                data: {
                    id: id,
                    amount: payingamount,
                    type: type,
                    note: note
                },
                success: function (data) {
                    
                }
            });
    
        }

    这是我这边的工作代码。 检查这一点,对于标题部分,您需要从请求中获取它

    【讨论】:

    • 都检查过了,问题依旧
    • @MexicoBoy 我已经更新了我的答案,请查看给我反馈
    • 这在我的情况下不起作用,因为type & note 不是由用户添加的,我是从 API 获取的
    • @MexicoBoy 类型和注释在我的情况下使用,而不是在你的情况下,所以忽略它。看看,我做了什么,而不是你的情况。
    • 是的,这就是我所做的,但是当我检查值时它们是未定义的,因为显然我正在获取值会话存储
    【解决方案2】:

    已找到解决此问题的方法。问题是 sessionStorage,因此我将它直接传递给 URL,现在它的工作方式如下:

       function functionA() {
        $.ajax({
            url: 'http://localhost:#####/api?id=' + sessionStorage.getItem('pageId') + '&access_token=' + sessionStorage.getItem('pageToken') + '&message=' + $('#comment').val(),
            method: 'POST',
            headers: {
                sessionStorage.getItem('token')
            },
            success: function () {
                $('#success').text('It has been added!"');
            },
        });
    }
    

    【讨论】:

      猜你喜欢
      • 2015-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-16
      相关资源
      最近更新 更多