返回顶部
首页 > 资讯 > 前端开发 > node.js >Node.js返回JSONP详解
  • 1123
分享到

Node.js返回JSONP详解

详解Nodejs 2022-06-04 17:06:50 1123人浏览 泡泡鱼
摘要

在使用Jquery的ajax从服务器请求数据或者向服务器发送数据时常常会遇到跨域无法请求的错误,常用的解决办法就是在Ajax中使用JSONP。基于安全性考虑,浏览器会存在同源策略,然而<script/

在使用Jqueryajax服务器请求数据或者向服务器发送数据时常常会遇到跨域无法请求的错误,常用的解决办法就是在Ajax中使用JSONP。基于安全性考虑,浏览器会存在同源策略,然而<script/>标签却具有跨域访问数据的能力,这就是jsONP工作的基本原理。有关同源策略以及什么是JSONP。

node.js中实现JSONP非常简单,通过下面的代码我们从服务器返回并运行一个javascript函数,这个JavaScript函数已经在调用方提前被定义好了,于是当它被返回的时候就自动执行了。


var express = require('express');
var router = express.Router();

router.get('/getinfo', function(req, res, next) {
 var _callback = req.query.callback;
 var _data = { email: 'example@163.com', name: 'jaxu' };
 if (_callback){
   res.type('text/javascript');
   res.send(_callback + '(' + JSON.stringify(_data) + ')');
 }
 else{
   res.json(_data);
 }
});

module.exports = router;

代码中必须规定从服务器返回数据的类型,代码res.type('text/javascript')被加在返回的数据之前用于告诉浏览器这是一段JavaScript代码。

前端页面通过JQuery调用:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>jsonp test</title>
  <script src="/bower_components/jquery/dist/jquery.js"></script>
</head>
<body>
  <input type="button" value="click" id="btn">
  <script type="text/javascript">
    $(function(){
      $('#btn').on('click', function(){
        $.get('Http://anothersite/api/getinfo', function(d){
          console.log(d);
        }, 'jsonp');
      });
    });
  </script>
</body>
</html>

运行代码,点击按钮,在浏览器的console面板总我们可以看到从远程服务器返回的json对象。

查看图片

以上这篇node.js返回JSONP详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: Node.js返回JSONP详解

本文链接: https://lsjlt.com/news/13039.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Node.js返回JSONP详解
    在使用JQuery的Ajax从服务器请求数据或者向服务器发送数据时常常会遇到跨域无法请求的错误,常用的解决办法就是在Ajax中使用JSONP。基于安全性考虑,浏览器会存在同源策略,然而<script/...
    99+
    2022-06-04
    详解 Node js
  • node.js根据不同请求路径返回不同数据详解流程
    目录1.学习根据不同的请求路径返回:不同数据2.发送的数据:数据类型,和什么编码:Content-Type3.关于读入文件的:相对路径和绝对路径:4.读图片1.学习根据不同的请求路径...
    99+
    2024-04-02
  • Node.js 回调函数实例详解
    Node.js 回调函数 阻塞与非阻塞 node.js 异步编程的直接体现就是回调。 异步编程依托于回调来实现,但不能说使用了回调后程序就异步化了。 回调函数在完成任务后就会被调用,Node 使...
    99+
    2022-06-04
    回调 详解 函数
  • JVM之方法返回地址详解
    JVM之方法返回地址 JVM运行时数据区的虚拟机栈的栈帧中包含了返回地址 当一个方法开始执行后,只有两种方式可以退出这个方法。 第一种方式是执行引擎遇到任意一个方法返回的字节码指令(...
    99+
    2024-04-02
  • C++中Covariant返回值类型详解
    目录前言什么是协变返回值类型(Covariant)协变返回值类型(Covariant)的作用前言 C++中当子类覆写(override)父类虚函数时,子类函数的返回值类型可以和父类函...
    99+
    2024-04-02
  • 详解Java中的OkHttp JSONP爬虫
    目录什么是JSOUP什么是OkHttp爬虫需要掌握的技术需要的依赖JSON入门DemoJSOUP常用方法使用JSOUP 方式连接User-Agent(随机)后台爬虫的三大问题sele...
    99+
    2024-04-02
  • 详解java封装返回结果与RestControllerAdvice注解
    目录1.为什么要把结果封装成统一格式?2.统一异常接收1.为什么要把结果封装成统一格式? 异常和正常情况无法区分:异常情况返回数据为null,正常情况下查询结果也为null,返回给前...
    99+
    2024-04-02
  • Python 详解基本语法_函数_返回值
    Python 详解基本语法 概要: 函数的返回值是函数重要的组成部分。函数的根本在于实现程序的部分功能,所以很多时候我们需要将函数执行后的结果返回给程序再由程序作出进一步的操作。可以说是函数的返回值令函数与...
    99+
    2022-06-04
    语法 详解 函数
  • Django中get()和filter()返回值区别详解
    先上官方文档! filter(**kwargs) 返回包含与给定查找参数匹配的对象的新查询集。 简单来说,返回一个又对象组成的查询集合 get(**kwargs) 返回与给定查找...
    99+
    2024-04-02
  • effect返回runner单测实现示例详解
    目录一、 runner 单测二、 核心逻辑实现一、 runner 单测 首先介绍一下runner的功能,分以下几点: effect(fn)执行会返回一个runner函数;执行run...
    99+
    2022-12-08
    effect返回runner单测 effect runner
  • SpringBoot统一返回格式的方法详解
    目录前言1. 直接返回结果2. 约定返回格式3. 返回统一格式结果4. 切片封装统一格式编写注解编写ControllerAdvice见证奇迹的时刻到了5. 自定义返回格式场景1:返回...
    99+
    2024-04-02
  • 详解SpringBoot如何统一后端返回格式
    目录为什么要对SpringBoot返回统一的标准格式第一种:返回 String第二种:返回自定义对象第三种:接口异常定义返回标准格式高级实现方式接口异常问题SpringBoot为什么...
    99+
    2024-04-02
  • C++求两数之和并返回下标详解
    目录给定一个整数数组 nums 和一个整数目标值 target,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。ACM模式核心代码模式方法一:创...
    99+
    2024-04-02
  • C语言返回值指针的函数详解
          #include<stdio.h> void main() { int a[5] = { 1,3,5,7,9 }; ...
    99+
    2024-04-02
  • python中函数的返回值及类型详解
    目录1.返回值介绍2.带有返回值的函数3.保存函数的返回值4.四种函数的类型1.无参数,无返回值的函数2.无参数,有返回值的函数3.有参数,无返回值的函数4.有参数,有返回值的函数5...
    99+
    2023-05-14
    python函数返回值 python 返回值类型
  • Android 拦截返回键事件的实例详解
    Android 拦截返回键事件的实例详解KeyEvent类Android.View.KeyEvent类中定义了一系列的常量和方法,用来描述Android中的按键事件和返回键有关的常量和方法有。 KeyEvent.KEYCODE_BACK...
    99+
    2023-05-30
    android 拦截 返回键
  • Golang函数的命名返回值专题详解
    Golang作为一门向并发领域发展的编程语言,为了让开发者更加方便地处理数据和状态,设计了一些非常方便实用的特性和语法,其中包括函数的命名返回值。在本文中,我们将深入探讨这个特性的使用方法和注意事项。一、命名返回值的概念在函数中,我们经常需...
    99+
    2023-05-16
    函数 Golang 命名返回值
  • Android 自定义返回按钮的实例详解
    Android 自定义返回按钮的实例详解程序中我们有时候想让放回按钮按照自己的需求调整页面而不是单纯的按照系统返回上一级,这个问题很简单,重写 onKeyDown 方法即可。下面方法,包含了 webview 中的返回上一页和普通 activ...
    99+
    2023-05-30
    android 自定义 返回按钮
  • MyBatis-Plus动态返回实体类示例详解
    目录1. 自定义SqlSession2. 自定义SqlSessionFactory3. 自定义SqlSessionTemplate4. 自定义基础Mapper5. 使用1. 自定义S...
    99+
    2024-04-02
  • FlutterWillPopScope拦截返回事件原理示例详解
    目录一、 WillPopScope用法二、使用WillPopScope遇到的问题三、 WillPopScope原理四、嵌套Navigator无法监听物理返回按键的解决办法一、 Wil...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作