简单示例:
import request from 'superagent';//引用声明
request.post(api).withCredentials()//跨域.end((err, res) => {if (res.ok) {const json = JSON.parse(res.text);} else {console.log('获取失败');}});

1、get 方式

  当使用get请求传递查询字符串的时候,用.query()方法,传递一个对象就可以,下面的代码将产生一个/search?query=Manny&range=1..5&order=desc请求:

request.get('/search').query({ query: 'Manny' }).query({ range: '1..5' }).query({ order: 'desc' }).end(function(res){});

  或者传一个单独的大对象:

request.get('/search').query({ query: 'Manny', range: '1..5', order: 'desc' }).end(function(res){});

  .query()方法也允许传递字符串:

request.get('/querystring').query('search=Manny&range=1..5').end(function(res){});

  或者字符串拼接:

request.get('/querystring').query('search=Manny').query('range=1..5').end(function(res){});

2、post 请求

  一个典型的json post请求看起来就像下面的那样,设置一个合适的Content-type头字段,然后写入一些数据,在这个例子里只是json字符串:

request.post('/user').set('Content-Type', 'application/json').send('{"name":"tj","pet":"tobi"}').end(callback)

  因为json非常通用,所以就作为默认的Content-type,下面的例子跟上面的一样:

request.post('/user').send({ name: 'tj', pet: 'tobi' }).end(callback)

  或者调用多次.send()方法:

request.post('/user').send({ name: 'tj' }).send({ pet: 'tobi' }).end(callback)

  默认发送字符串,将设置Content-typeapplication/x-www-form-urlencoded,多次调用将会通过&来连接,这里的结果为name=tj&pet=tobi:

request.post('/user').send('name=tj').send('pet=tobi').end(callback);

  superagent的请求数据格式化是可以扩展的,不过默认支持formjson两种格式,想发送数据以application/x-www-form-urlencoded类型的话,则可以简单的调用.type()方法传递form参数就行,这里默认是json,下面的请求将会postname=tj&pet=tobi内容:

request.post('/user').type('form').send({ name: 'tj' }).send({ pet: 'tobi' }).end(callback)

3、设置content-type

  常见的方案是使用.set()方法:

request.post('/user').set('Content-Type', 'application/json')

  一个简便的方法是调用.type()方法,传递一个规范的MIME名称,包括type/subtype,或者一个简单的后缀就像xml,json,png这样,例如:

 request.post('/user').type('application/json')request.post('/user').type('json')request.post('/user').type('png')

4、设置接受类型

  跟.type()简便方法一样,这里也可以调用.accept()方法来设置接受类型,这个值将会被request.types所引用,支持传递一个规范的MIME名称,包括type/subtype,或者一个简单的后缀就像xml,json,png这样,例如:

request.get('/user').accept('application/json')request.get('/user').accept('json')request.get('/user').accept('png')

5、跨域

  .withCredentials()方法可以激活发送原始cookie的能力,不过只有在Access-Control-Allow-Origin不是一个通配符(*),并且Access-Control-Allow-Credentials为’true’的情况下才行.

request.get('http://localhost:4001/').withCredentials().end(function(res){assert(200 == res.status);assert('tobi' == res.text);next();})

转载于:https://www.cnblogs.com/luoxiaowei/p/6917711.html

可用于nodejs的SuperAgent(ajax API)相关推荐

  1. 调用Nodejs版网易云API时,遇到code:-462报错解决方案

    在今年(2023)四月份,我在调用基于Nodejs版网易云API时,突然出现了下面这个报错: 很明显,网易云在调用API时需要我们进行账户验证,我很自然想到可能是需要登录.那么查阅API文档,我们可以 ...

  2. eclipselink_EclipseLink MOXy和用于JSON处理的Java API –对象模型API

    eclipselink 用于JSON处理的Java API(JSR-353)是作为Java EE 7的一部分引入的用于生成和使用JSON的Java标准.JSR-353包括对象(类似于DOM)和流(类似 ...

  3. EclipseLink MOXy和用于JSON处理的Java API –对象模型API

    用于JSON处理的Java API(JSR-353)是用于生成和使用JSON的Java标准,它是Java EE 7的一部分引入.JSR-353包括对象(类似于DOM)和流(类似于StAX)API. 在 ...

  4. ajax提交输入内容,当输入用于提交时,AJAX表单提交

    我有一位设计师坚持通过点击回车和由AJAX提交的帖子和由Fancybox提供的回复提交的单个表单域.问题是return false不能阻止页面的提交.当输入用于提交时,AJAX表单提交 我在那里做错了 ...

  5. jdbc mysql api_JDBC---一种用于执行SQL的Java API

    JDBC是一种用于执行SQL的Java API,它本身是个商标名,但很多人把它认为是Java Database Connectivity(Java 数据库连接)的缩写. JDBC是一组访问数据库的AP ...

  6. ajax访问带token abp,ABP官方文档(三十八)【AJAX API】

    6.6 ABP表现层 - AJAX API 6.6.2.1 AJAX操作问题 现代的应用经常会使用AJAX,尤其是单页应用,几乎是和服务器通信的唯一手段,执行AJAX通常会有以下步骤: 基本上:为了执 ...

  7. 微软发布用于Serverless架构的Azure API Management

    Azure API Management是一种全托管服务,为用户提供发布.保护.转换.维护和监控API的能力.用户只需要在Azure门户上点击几下,就可以创建一个充当"前门"的AP ...

  8. (八)用于人脸识别的Web API

    目录 介绍 客户端应用 服务器端应用程序 在容器中运行系统 下一步 在这里,我们将开发用于将检测到的人脸图像发送到识别服务器的Python代码,使用简单的Web API包装AI人脸识别以从边缘设备接收 ...

  9. ajax fetch api,fetch 简介: 新一代 Ajax API

    AJAX半遮半掩的底层API是饱受诟病的一件事情. XMLHttpRequest 并不是专为Ajax而设计的. 虽然各种框架对 XHR 的封装已经足够好用, 但我们可以做得更好.更好用的API是 fe ...

最新文章

  1. 软件测试概述--基础篇
  2. Struts2配置时报struts-default.xml:65:72异常的解决方法
  3. 阿里云centos7通过yum安装 Mysql 8.0.11
  4. 你应该知道的模型评估的五个方法
  5. Nginx做web服务器linux内核参数优化
  6. Activity Monitor 闪退 无法进入睡眠
  7. windows 2003负载均衡故障切换
  8. linux crontab详解
  9. Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.
  10. 选数 2002年NOIP全国联赛普及组
  11. 在设计DJANGO用户更改密码时,出现NoReverseMatch at /account/password-change/这种妖精如何办?...
  12. postgresql是如何求年龄的_负债累累如何度过难关?她依靠此法三年还清300多万债务!...
  13. python金融风控评分卡模型和数据分析(加强版)
  14. python中合法命名的变量名_「变量名」python中变量的命名以及使用 - 金橙教程网...
  15. java 写文件换行_Java 写文件实现换行
  16. robbin界面 java_使用JAVA和C#开发Ribbon界面
  17. ppt大小如何压缩,ppt压缩方法
  18. java-net-php-python-java交通事故档案管理系统PPT计算机毕业设计程序
  19. java 中“==”与“equal” 的区别
  20. 第十六章:开发工具-compileall:字节编译源文件-编译单个文件

热门文章

  1. char与varchar的区别
  2. Ubuntu18.04安装cudnn
  3. 目标检测中如何定义正负样本,和正负样本在学习过程中loss计算起的作用
  4. java触发_怎么样让JAVA 设置一秒钟触发一个事件
  5. 华为atn980传输设备_注册开发者超200万!华为HMS加速全球布局,打造全场景智慧体验...
  6. 计算机科学与技术专业认证研讨,信息学院召开计算机科学与技术专业IEET认证暨人才培养方案修订研讨会...
  7. 【PCL】的五大依赖库及作用
  8. 数字图像处理:blob分析、阈值分割
  9. 读后感与机翻《理解工具:面向任务的对象建模、学习和识别》
  10. OpenCV 错误:无法打开摄像头(打开摄像头卡机)