mvc5 webap2 前台如何使用 ajax 请求后台API

按照正常的写法,总是出现404错误,研究了很久,在这里找到了解决方案:http://buxuxiao.com/article/using-jquery-to-post-frombody-parameters-to-web-api

现在总结一下,

单个参数的情况下:

1、后台参数正确的写法如下:



[Route("Services/{controller}/{action}")]
[HttpPost]
[HttpGet]
public string UploadTransportNetworkAlarmChat([FromBody]string obj)
{
...
}

必须在参数列表前面加上[FormBody]标签。

2、前台的参数,仍然以key-value方式添加,但KEY的名字必须置为空:


$.ajax({
type: "POST",
url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
data: {"":"helloWorld"},
dataType: ‘JSON‘,
})

多个参数的情况下,

1、后台需要定义实体类,参数列表中不用增加[FromBody]标签,如下:


    public class tempObj
{
public string imgBase64 { get; set; }
public string name { get; set; }
}

接收 方法:


[Route("Services/{controller}/{action}")]
[HttpPost]
[HttpGet]
public string UploadTransportNetworkAlarmChat(tempObj obj)
{}

2、前台仍然使用JSON


            var TempObj = { "imgBase64": image, "name": "helloWorld" }
$.ajax({
type: "POST",
url: "../Services/ChatTest/UploadTransportNetworkAlarmChat",
data: TempObj,
dataType: ‘JSON‘,
})
.done(function (data) {
alert("Data Loaded: " + data);
});

mvc5 webap2 前台如何使用 ajax 请求后台API,布布扣,bubuko.com

时间: 2024-10-11 16:13:16

mvc5 webap2 前台如何使用 ajax 请求后台API的相关文章

ajax请求后台,返回json格式数据,模板!

添加一个用户的时候,需要找出公司下所有的部门,和相应部门下的角色,利用ajax请求,实现联动技术.将返回的json格式数据,添加到select标签下. <script type="text/javascript">        //加载出部门的信息            function loadGroup(){                            $.ajax({                    type:"post",  

vue实战使用ajax请求后台数据(小白)

vue实战使用ajax请求后台数据(小白) 前言:前端小白入门到这个阶段,应该会知道我们所做的页面上那些数据,绝大部分都不是静态的数据,而是通过调用后台接口把数据渲染到页面上的效果.ajax可以帮助我们更好的去实现这一点,下面是详解在vue中如何使用它. vue本身它是不支持直接发送ajax请求的,需要用到axios(一个基于promise的HTTP库,可以用在浏览器和node.js中)这是Axios文档的介绍,详细可查看:https://www.kancloud.cn/yunye/axios/

ajax请求后台,有时收不到返回值的解决办法

昨天下午做项目遇到一个问题,贴出来方便以后翻阅,也给大家个参考. 问题: 具体做的是个文件导入的功能,导入的功能是成功了,但是界面一直得不到返回值,排查了一下午,调试的时候是可以有返回的,但是关掉浏览器调试界面,却得不到返回结果. 原因: 一直以为是我后台程序有问题,晚上回到家才想起来ajax的问题,把ajax的异步处理改为同步,就出来效果了,具体的原因请看下文详解. jquery中ajax方法有个属性async用于控制同步和异步,默认是true,即ajax请求默认是异步请求,有时项目中会用到A

asp.net如何在前台利用jquery Ajax调用后台方法

一 :最近因为帮同事开发项目使用到了asp.net,而我又想实现Ajax异步请求....从网上查询了一下资料之后,原来在asp.net中利用Ajax调用后台方法同样很简单,为了便于自己以后查看,特将此整理后记录如下 先贴上前台代码如下: 1 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Index.aspx.cs" Inherits="aspnetAjax.In

ajax请求后台,response.sendRedirect失效,无法重定向

今天在写项目的时候,想加一个切换用户,需要清除session并且跳转到登录页面,发起一个ajax请求后,执行完发现无法跳转. 原因在于: (从网上摘录) Ajax只是利用脚本访问对应url获取数据而已,不能做除了获取返回数据以外的其它动作了.所以浏览器端是不会发起重定向的. 1)正常的http url请求,只有浏览器和服务器两个参与者.浏览器端发起一个http请求,服务器端处理后发起一个重定向,浏览器端从response中获取到重定向地址,发起另一个http url请求.也就是说,浏览器会按照r

在ajax请求后台时在请求标头RequestHeader加token

情景:为了保证系统数据的安全性,一般前后台之间的数据访问会有授权与验证,这里的Token机制相对于Cookie支持跨域访问,在RESTful API里面,验证一般可以使用POST请求来通过验证,使服务端发送带有token的响应.或者,使用GET请求,这需要参数提供凭证(指URL),或者请求头里带有token. 此处为上述的第二种方法:在ajax请求的标头中加Token 1 var str = sessionStorage.getItem("userInfo"); 2 var currU

ajax 请求后台数据返回异常 及 提示404方法名不存在

1.正常使用 Ajax 调取后台数据时,提示方法名不存在,Ajax前端正常,方法类bean注入正常,方法注解正常.但参数解析时出现异常. @RequestMapping(value="/getProject") @ResponseBody public Map<String,Object> getProject(@RequestBody Map<String, Object> paraMap,HttpServletRequest request){ Map<

AjAX请求后台,无刷新更新页面

$(function () {        $('#按钮ID').click(function () { $.ajax({                url: '请求地址',                data: '传递参数',                datatype: 'text/plain',//请求类型                success: function (返回参数) {                    if (result == "1")

jquery ajax请求后台 的简单例子

jQuery.ajax(url,[settings]) 概述 通过 HTTP 请求加载远程数据. jQuery 底层 AJAX 实现.简单易用的高层实现见 $.get, $.post 等.$.ajax() 返回其创建的 XMLHttpRequest 对象.大多数情况下你无需直接操作该函数,除非你需要操作不常用的选项,以获得更多的灵活性. 最简单的情况下,$.ajax()可以不带任何参数直接使用. 注意,所有的选项都可以通过$.ajaxSetup()函数来全局设置. 回调函数 如果要处理$.aja