Razor中的Jquery Ajax Post Object响应400错误代码

Posted

技术标签:

【中文标题】Razor中的Jquery Ajax Post Object响应400错误代码【英文标题】:Jquery Ajax Post Object response 400 error code in Razor 【发布时间】:2022-01-24 06:59:17 【问题描述】:

我正在尝试 Jquery Ajax Post to Razor Page 操作。我为帖子创建了自定义对象,然后我收到 400 错误代码。

这是我的类结构:

public class InsertProductPrice

    public long ID  get; set; 
    public int PKademe11  get; set; 
    public int PKademe12  get; set; 
 

这是我的 Razor 页面操作:

public IActionResult OnPostSavePrice(InsertProductPrice price)

    return new OkResult();      

这是我的 Jquery 代码(我尝试使用 'data: JSON.stringify(price)' 但结果相同);

var url =   `/Supplier/insertProductPrices?handler=SavePrice`;
    $.ajax(
        type: "POST",
        url: url,
        dataType: 'json',
        data:  price,
        //contentType: "application/json",
        beforeSend: function (xhr) 
                    
        ,
        success: function (response) 
            
        ,
        error: function (jqXHR, textStatus, errorThrown) 
            alert(jqXHR.responseText);
        
    );

这是我的对象;

var price = 
        "ID": priceArray[index].id,
        "PKademe11": Number(body.children[0].children[4].children[0].value),
        "PKademe12": Number(body.children[0].children[5].children[0].value),
    ; 
//Like this
price = 
        "ID": 100,
        "PKademe11": 0,
        "PKademe12": 0,
    ;

【问题讨论】:

【参考方案1】:

你需要在header中添加AntiFororgoryToken:

查看:

@html.AntiForgeryToken()

js:

var url =   `/Supplier/insertProductPrices?handler=SavePrice`;
    $.ajax(
        type: "POST",
        url: url,
        dataType: 'json',
        data:  price,
        headers:  "RequestVerificationToken": $('input[name="__RequestVerificationToken"]').val() ,
        beforeSend: function (xhr) 
                    
        ,
        success: function (response) 
            
        ,
        error: function (jqXHR, textStatus, errorThrown) 
            alert(jqXHR.responseText);
        
    );

【讨论】:

它第一次工作:)。非常感谢。这个问题花了我 1 天的时间。再次感谢 嗨@CevatSerin,因为这个答案对你有帮助,你能accept this answer 并可能投票感谢@YiyiYou 的努力吗?谢谢。

以上是关于Razor中的Jquery Ajax Post Object响应400错误代码的主要内容,如果未能解决你的问题,请参考以下文章

通过 jquery Ajax 上传图片到 Model Data 到 Controller MVC/Razor

Asp .Net Core 2.2 Razor Pages Ajax Call Post 不工作

我无法在 C# 中使用 Jquery 和 Ajax 从控制器向 Razor 视图发送值

如何使用 jquery 或 ajax 在 c#/asp.net 中为 MVC 项目更新 razor 部分视图

ASP.net MVC Core Razor 页面和 Ajax JQuery

使用 AJAX 进行 GET 的 Razor Pages PageModel 绑定