在 node 中使用 jquery ajax

对于前端同学来说,ajax 请求应该不会陌生。jquery 真的ajax请求做了封装,可以通过下面的方式发送一个请求并获取相应结果:

$.ajax({
    url: "https://echo.apipost.cn/get.php",
    data: formData,
    type: "POST",
    processData: false,
    contentType: false,
    success: function (data, status, xhr) {
        console.log(data, status, xhr)
    },
    error: function (xhr, status, error) {
        console.log(xhr, status, error)
    },
    complete: function (xhr, status) {
        console.log(xhr, status)
    }
})

但是,在 node 环境中,就需要一些其他库实现接口发送,例如GOT、request 等。当然,也可以通过在node 中安装 jquery 来使用上面 $.ajax 的方法,但是会有一个很要命的问题:跨域。

何为跨域?

当一个请求url的协议、域名、端口三者之间任意一个与当前页面url不同即为跨域。也就是违反了“同源策略”:

同源策略是一个重要的安全策略,它用于限制一个origin的文档或它加载的脚本如何能与另一个源的资源进行交互。能够减少恶意文档,减少可能被攻击媒介。 如果两个URL的协议、域名、端口号都相同,就称这两个URL同源。

浏览器默认两个不同的源之间是可以互相访问资源和操作DOM的。两个不同的源之间若是想要访问资源或者操作DOM,那么会有一套基础的安全策略的制约,我们把这称为同源策略。它的存在可以保护用户隐私信息,防止身份伪造。

使用 ajax-for-node 实现 $.ajax

 ajax-for-node (ajax-for-node - npm)是一个在 node 环境下实现 $.ajax 的库,它的所有参数格式和 $.ajax 完全一致。

const nodeAjax = require('ajax-for-node');

var formData = new FormData();
formData.append("username", "Groucho");
formData.append("accountnum", 123456);

nodeAjax({
    url: "https://echo.apipost.cn/get.php",
    data: formData,
    type: "POST",
    processData: false,
    contentType: false,
    success: function (data, status, xhr) {
        console.log(data, status, xhr)
    },
    error: function (xhr, status, error) {
        console.log(xhr, status, error)
    },
    complete: function (xhr, status) {
        console.log(xhr, status)
    }
});

github:https://github.com/Apipost-Team/nodeajax

npm :ajax-for-node - npm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值