为了账号安全,请及时绑定邮箱和手机立即绑定

Ajax请求:Json数据未传递给控制器

Ajax请求:Json数据未传递给控制器

莫回无 2019-04-18 23:19:12
我正在构建一个在ASP.NET Core中搜索文档的程序。我通过Ajax请求将搜索数据从文本框传递给控制器,但控制器没有收到字符串。我已经尝试改变ajaxData字段的定义方式,在'search'周围添加引号,甚至将整个事物转换为字符串,但我无法将其传递给控制器。这是请求的代码:ajaxData = {search: $("#textSearchBox").val()}console.log(ajaxData);$.ajax({     type: 'POST',     url: "@Url.Action("GetDocuments", "DocumentSearchApi")",     data: ajaxData,     dataType: "json",     contentType: "application/json; charset=utf-8",     error: function (e) {         //Error Function     },     success: function (jsonData) {         //Success Function     },     fail: function (data) {         //Fail Function     }});这是Controller的GetDocuments功能的顶部:[Route("GetDocuments")]public async Task<IActionResult> GetDocuments(string search){没有任何错误消息。控制台显示一个包含'search:“Test”'的Object,但是当我在GetDocuments中搜索断点时,'search'为null。
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

我认为在这种情况下使用GET是更优雅的方式,那么你应该将代码更改为

var ajaxData = $("#textSearchBox").val();url: "@Url.Action("GetDocuments", "DocumentSearchApi")"?search=ajaxData

并删除数据:ajaxData

因为你想从搜索中获得一些东西。使用帖子是您想要修改API中的数据


查看完整回答
反对 回复 2019-05-17
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

在将数据发送到Web服务器时,您需要使用JSON.stringify(),数据必须是字符串而不是对象

$.ajax({
    type: 'POST',
    url: "@Url.Action("GetDocuments", "DocumentSearchApi")",
    data: JSON.stringify(ajaxData),
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    error: function (e) {
        //Error Function
    },
    success: function (jsonData) {
        //Success Function
    },
    fail: function (data) {
        //Fail Function
    }});


查看完整回答
反对 回复 2019-05-17
  • 2 回答
  • 0 关注
  • 543 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信