手机版

Node.js返回JSONP详细说明

时间:2021-10-30 来源:互联网 编辑:宝哥软件园 浏览:

使用JQuery的Ajax向服务器请求数据或向服务器发送数据时,经常会遇到无法跨域请求的错误。常见的解决方案是在Ajax中使用JSONP。出于安全考虑,浏览器会有相应的策略,但脚本/标签具有跨域访问数据的能力,这是JSONP的基本原理。关于同源策略和什么是JSONP。

在Node.js中实现JSONP非常简单。通过下面的代码,我们从服务器返回并运行一个JavaScript函数。这个JavaScript函数已经由调用者预先定义好了,所以在返回时会自动执行。

var express=require(' express ');var路由器=express。路由器();router.get('/getinfo ',函数(req,res,next){ var _ callback=req . query . callback;var _ data={ email : '[email protected]',name : ' jaxu ' };if(_ callback){ RES . type(' text/JavaScript ');RES . send(_ callback '(' JSON . stringify(_ data)')');} else { RES . JSON(_ data);}});module.exports=路由器;从服务器返回的数据类型必须在代码中指定,并且代码res.type('text/javascript ')被添加在返回的数据之前,以告诉浏览器它是一个javascript代码。

前端页面通过JQuery调用:

!DOCTYPE html html lang=' en ' head meta charset=' UTF-8 ' title jsonp test/title script src=' http :/bower _ components/jquery/dist/jquery . js '/script/head dy输入类型=' button ' value=' click ' id=' BTN ' script type=' text/JavaScript ' $(function(){ $(' # BTN ')。on('click ',function(){ $。get(' http://other site/API/getinfo ',函数(d){ console . log(d);},' jsonp ');});});/script/body/html运行代码,点击按钮,我们总能在浏览器的控制台面板中看到远程服务器返回的json对象。

以上Node.js返回的JSONP详细说明,都是边肖分享的内容,希望能给大家一个参考和支持。

版权声明:Node.js返回JSONP详细说明是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。