在Restful风格的WebApi的里面,API服务的增删改查,分别对应着Http Method的Get / Post / Delete /Put,下面简单总结了Get / Post /Delete /Put的传参方式

一、Get传参

  get设计成传输小数据,而且最好是不修改服务器的数据,所以浏览器一般都在地址栏里面可以看到,数据放在url的QueryString中。

1.1  简单类型

$(function () {
$.ajax({
type: 'get',
url:'http://localhost:60761/api/News',
data: {Id:,Title:"新闻1",Desc:'这是新闻1'},
success: function (data) {
console.log(data)
}
})
});

1.2  复杂类型

  如果我们想通过get传输复杂类型,如把Action中接收的参数是News类型来接受,发现不能通过get直接传参给复杂类型,如下图

为了实现get方式传参给复杂类型,这里提供了两种解决办法:

1.2.1  FromUri属性

FromUri的作用是强制从uri中给复杂类型参数赋值,只需要在上边代码的参数前边加上这个属性就可以了,运行结果如下:

1.2.2  序列化

$(function () {
$.ajax({
type: 'get',
url: 'http://localhost:60761/api/News',
data: { newstr: JSON.stringify({ Id: , Title: "新闻1", Desc: '这是新闻1' }) },
success: function (data) {
console.log(data)
}
})
});
这里我们用JavaScriptSerializer进行序列化的,实际开发中我们也可以使用Json.net进行,Json.net的效率要更高些。

二、post传参

post传输数据时,大小基本没有限制,数据存放在请求的报文体的Form中,用户在url中看不到数据,相对较安全,但是监听器也能很容易地检测到Form中的数据。

2.1  传单个简单类型(FromBody)

$(function () {
$.ajax({
type: 'post',
url: 'http://localhost:60761/api/News',
data: { "": "新闻1" },//这里的key必须为空
success: function (data) {
console.log(data)
}
})
});

2.2  传多个简单类型(dynamic)

传一个简单类型的时候也可以采用这种方式,这种方式的好处是可以不用写data:{"","value"}这样不好看的代码。

$(function () {
$.ajax({
type: "post",
contentType: 'application/json',//这个必须加上
url: "http://localhost:60761/api/News",
data: JSON.stringify({ Id: "1", Title: "这是新闻1", Desc: "这是新闻1" }),
success: function (data, status) { }
});
});

2.3  传一个复杂类型

$(function () {
$.ajax({
type: "post",
url: "http://localhost:60761/api/News",
data: { Id: "1", Title: "这是新闻1", Desc:"这是新闻1"},
success: function (data, status) { }
});
});

2.4  简单类型数组

var idArr = [1, 2, 3, 4];
$(function () {
$.ajax({
type: "post",
contentType: 'application/json',
url: "http://localhost:60761/api/News",
data: JSON.stringify(idArr),
success: function (data) { }
});
});

2.5  复杂类型数组

var newsArr = [
{ Id: 1, Title: "新闻1", Desc: "这是新闻1" },
{ Id: 2, Title: "新闻2", Desc: "这是新闻2" },
{ Id: 3, Title: "新闻3", Desc: "这是新闻3" }
]; $(function () {
$.ajax({
type: "post",
contentType: 'application/json',
url: "http://localhost:60761/api/News",
data: JSON.stringify(newsArr),
success: function (data) { }
});
});

注:put和delete的传参方式和Post一样,这里不再重复。

参考文档:

1.http://www.cnblogs.com/landeanfen/p/5337072.html

2.https://www.cnblogs.com/home-wang/p/5072904.html

Web API中的传参方式的更多相关文章

  1. react中的传参方式

    react是一个SPA模式,即组件嵌套租,在一个单页面的应用中组件间的数值传递是必不可少的,主要的传参方式大致有一下几种: 1,在挂载的地方给组件传参 ReactDOM.rander(<a na ...

  2. axios中post传参方式

    最近做vue项目,做图片上传的功能,使用get给后台发送数据,后台能收到,使用post给后台发送图片信息的时候,vue axios post请求发送图片base64编码给后台报错HTTP 错误 414 ...

  3. java 中 Integer 传参方式的问题

    Java本身都是值传递式的调用,对于对象传递的是地址值.给地址值重新赋值等于重新指向,不会影响外层. 而且这里Integer对象也有特殊性.其实现上可能类似 class Integer{ final ...

  4. js 获取纯web地址栏中URL传参

       function GetQueryString(name)    {         var reg = new RegExp("(^|&)"+ name +&quo ...

  5. 剖析Asp.Net Web API路由系统---WebHost部署方式

    上一篇我们剖析了Asp.Net路由系统,今天我们再来简单剖析一下Asp.Net Web API以WebHost方式部署时,Asp.Net Web API的路由系统内部是怎样实现的.还是以一个简单实例开 ...

  6. mock和axios常见的传参方式

    第一次接手项目,传参方式还有些吃力,因此做一下总结. 首先我们需要会看swagger中的接口.里面写了某个接口需要接收什么样的值,前端怎么传递这个值 在mock中的传参方式: mock中传参的方式有两 ...

  7. 在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

    在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式 ...

  8. WEB API 中HTTP的get、post、put,delete 请求方式

    一.WEB API 中HTTP 请求方式的四个主要方法 (GET, PUT, POST, DELETE), 按照下列方式映射为 CURD 操作: 1.POST 用于新建资源,服务端在指定的URI 上创 ...

  9. ASP.NET Web API中实现版本的几种方式

    在ASP.NET Web API中,当我们的API发生改变,就涉及到版本问题了.如何实现API的版本呢? 1.通过路由设置版本 最简单的一种方式是通过路由设置,不同的路由,不同的版本,不同的contr ...

随机推荐

  1. 第一天:学会如何在pycharm上编写第一条robotframework用例

    ---恢复内容开始--- 1.python环境的安装和依赖包的下载

  2. Hard Life UVA - 1389(最大密度子图 输出点集)

    题意: rt 解析: 我用的第二种方法... s向所有的边连权值为1的边 所有的点向t连权值为mid的边 如果存在u -  > v  则边向u和v分别连一条权值为INF的边 二分mid 用dfs ...

  3. 【XSY2534】【CF835D】Palindromic characteristics 回文自动机

    题目大意 ​ 一个字符串\(s\)是\(1\)−回文串当且仅当这个串是回文串. ​ 一个串\(s\)是\(k\)−回文串\((k>1)\)当且仅当\(s\)的前一半与后一半相同且\(s\)的前一 ...

  4. Node<T> 的作用

    Java中常见到以下定义的类 public class Node<T> { T data; public Node<T> next; Node(T data) { this.d ...

  5. npm 淘宝源

    --------- npm: 淘宝源设置:npm config set registry https://registry.npm.taobao.org

  6. 【dfs】p1025 数的划分

    P1025 数的划分 题目描述 将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序). 例如:n=7,k=3,下面三种分法被认为是相同的. 1,1,5; 1,5,1; 5,1,1; 问有 ...

  7. HDU-6370 Werewolf(杭电多校6I)

    一群人在玩狼人杀,村民只会说真话,狼人会说真话和假话,要你求出那些人一定是村民或者那些人一定是狼人.想到了并查集不会用... 1,如果全部人都是狼人,一定可以所以一定是村民的人一定是0. 2, 加入是 ...

  8. UVA 11149-Power of Matrix(等比矩阵求和)

    给定一个矩阵A 要求A + A^2 + A^3 +…. A^k: 对于到n的等比矩阵求和 如果n是偶数:  如果n是奇数:  #include<stdio.h> #include<s ...

  9. Spring的核心

    技术书籍这么多,每次好不容易读完一本,但总过不了多久就会遗忘.为了对抗,整理记录和回看,也是实属必要.由此,从这<Spring 实战(第四版)>开始,记录一下知识点,下次再要复习时,能免去 ...

  10. 2019.4.1考试&2019.4.2考试&2019.4.4考试

    4.1:T1原题,T2码农板子题,T3板子题 4.2 好像是三个出题人分别出的 以及#define *** 傻逼 T1 思维好题 转成树形DP,$dp[i][j]$表示点i值为j的方案数,记录前缀和转 ...