技术文章
当前位置:首页 > node.js技术文章 > 用nodejs实现json和jsonp服务的方法

nodejs实现json和jsonp服务的实例讲解

  • 发布时间:
  • 作者:码农之家原创
  • 点击:169

这篇文章主要知识点是关于nodejs、json、jsonp、的内容,如果大家想对相关知识点有系统深入的学习,可以参阅以下电子书

Node.js项目实践:构建可扩展的Web应用
  • 类型:Node.js大小:55.6 MB格式:PDF出版:电子工业出版社作者:阿扎.马尔丹
立即下载

更多Node.js相关的学习资源可以参阅 Node.js电子书程序设计电子书 等栏目。

用nodejs实现json和jsonp服务的方法

一、JSON和JSONP

JSONP的全称是JSON with Padding,由于同源策略的限制,XmlHttpRequest只允许请求当前源(协议,域名,端口)的资源。如果要进行跨域请求,我们可以通过使用html的script标记来进行跨域请求,并在相应中返回要执行的script代码,其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式成为JSONP。

由此我们可以看出两者的区别:

json: 一种轻量级的数据格式。

 jsonp:为实现跨域,而采用的一种脚本注入方法。

备注:要了解更多json,可以参见我原先写的一篇介绍json的文章:《JSON那些事》

二、实现

为了简单起见,我们要读取数据都是

var data = {'name': 'jifeng', 'company': 'taobao'};

1. 服务器端代码:

var http = require('http');
var urllib = require('url');

var port = 10011;
var data = {'name': 'jifeng', 'company': 'taobao'};

http.createServer(function(req, res){
 var params = urllib.parse(req.url, true);
 console.log(params);
 if (params.query && params.query.callback) {
 //console.log(params.query.callback);
 var str = params.query.callback + '(' + JSON.stringify(data) + ')';//jsonp
 res.end(str);
 } else {
 res.end(JSON.stringify(data));//普通的json
 }  
}).listen(port, function(){
 console.log('server is listening on port ' + port); 
})

2. 游览器端代码,为方便起见,我直接用了jquery的方法

<html> 
<head> 
 <script src="http://code.jquery.com/jquery-latest.js"></script> 
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
</head> 
<body> 
<script type="text/javascript"> 
function get_jsonp() { 
 $.getJSON("http://10.232.36.110:10011?callback=?", 
 function(data) {
 $('#result').val('My name is: ' + data.name); 
 }); 
} 
</script> 
<a href="javascript:get_jsonp();" rel="external nofollow" >Click me</a><br /> 
<textarea id="result" cols="50" rows="3"></textarea> 
</body> 
</html> 

jquery中getJSON()方法可以参见:http://www.w3school.com.cn/jquery/ajax_getjson.asp

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持码农之家。

以上就是本次给大家分享的关于Node.js的全部知识点内容总结,大家还可以在下方相关文章里找到Node.js中使用计时器定时执、 nodejs中间层实现文件上传、 nodejs实现本地上传图片并、 等nodejs文章进一步学习,感谢大家的阅读和支持。

上一篇:解决NodeJs安装npm包一直失败的方法步骤

下一篇:NodeJs微信事件交互实例的详解

展开 +

收起 -

nodejs实例 相关电子书
学习笔记
网友NO.605717

nodejs读取本地中文json文件出现乱码解决方法

1. 确定json文件是UTF-8 无BOM编码的的。如果有BOM,会在读取第一行的时候出现乱码。 Per"fs.readFileSync(filename, 'utf8') doesn't strip BOM markers #1918",fs.readFileis working as designed:BOM isnotstripped from the header of the UTF-8 file, if it exists.It at the discretion of the developer to handle this. Possible workarounds: data= data.replace(/^\uFEFF/, '');perhttps://github.com/joyent/node/issues/1918#issuecomment-2480359 Transform the incoming stream to remove the BOM header with the NPM modulebomstripperhttps://github.com/joyent/node/issues/1918#issuecomment-38491548 What you are getting is the byte order mark header (BOM) of the UTF-8 file. WhenJSON.parsesees this, it gives an syntax error (read: "unexpected character" error). You must strip the byte order mark from the file before passing it toJSON.parse: fs.readFile('./myconfig.json', 'utf8', function (err, data) { myconfig = JSON.parse(data.toString('utf8').replace(/^\uFEFF/, ''));});// note: data ……

网友NO.106012

Jquery通过ajax请求NodeJS返回json数据实例

最近看了NodeJS相关的,在网上查了下结合AJAX的应用,感觉应用前景还是不错的。为什么用这个组合呢? 1.NodeJS不需要安装,拷贝过去就可以使用,而环境变量可以只配置在当前cmd窗口,运行方便。 2.通过HTML的ajax请求,可以实现在不同的服务器上,可跨域获取数据。 3.通信数据格式灵活,可以是xml、json、binary等,数据适合任何平台。 在说说我的环境,我使用的是公司提供的电脑,有很多限制,比如是域中电脑,操作权限低,无法安装任何软件,无法修改计算机配置,无法使用U盘等等。所以我就自己配置了一个nodejs的绿色版环境,只能在当前cmd窗口运行nodejs的相关环境;无法架设html服务器,所以就单独在D盘创建一个html文件双击打开使用。 一、node环境就不说了,可以查看以下几篇文章 //www.jb51.net/article/33086.htm //www.jb51.net/article/54678.htm //www.jb51.net/a……

网友NO.766410

nodejs require js文件入口,在package.json中指定默认入口main方法

我们都知道nodejs遵循commonJS规范,各个js是独立的。 如果目录结构是: –config 文件夹 – index.js – test.js app.js 那么在app.js中require('./config')的时候,默认是index.js。 如何修改默认的config的入口? 只需要在config中添加package.json配置文件,在这个文件中进行指定默认的入口 { "name":"配置文件", "description":"这是配置文件", "main":"./test"} 这样就会默认引入test.js。 以上这篇nodejs require js文件入口,在package.json中指定默认入口main方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

网友NO.102006

node.js+captchapng+jsonwebtoken实现登录验证示例

提到登录验证,大家肯定能想到的就是12306的验证码了吧。12306为了防止刷票,可以说是煞费苦心,验证码也越来越难识别,最终即使是人也可能识别不了了。 今天,小编就给大家说一下node如何实现图片验证码,以及使用token验证登录。学习本文你将学到: 1.使用captchapng生成图片验证码 2.使用jsonwebtoken实现登录验证 一、图片验证码生成(最后有全部代码) 首先,我们理一下流程,第一步服务器要随机生成一组四位数。 第二步,将这四位数用canvas绘图生成图片。 第三步,我们要将这四位数存起来,以便用户返回数据时做对比。 那么存到哪里呢?很明显为了区分用户,存到session最为稳妥。 第一步,先要有一个登录页面。在这里我们依然用react, login.tsx import * as React from 'react'import * as ReactDom from 'react-dom'import {Link, browserHistory} from 'react-router';import * as a……

网友NO.421461

NodeJS 将文件夹按照存放路径变成一个对应的JSON的方法

在编程之前,一定要有一个信条:代码是为了减少工作量而生的,重复枯燥的工作是不能容忍的。 需求 这是由上篇文章衍生出的需求,我已经将一个文件夹内所有的文件名转译为英文,但我在页面上还需要将这些图片引入加载。如果一个一个手写到程序里,未免有点劳心劳神。那么何不将这个文件夹按照存放路径变成一个相应的JSON在前端请求并渲染呢? 说干就干。 文件夹的路径如下所示: 一级路径:test 二级路径:A,B,C...共十三个文件夹 三级路径:每个二级路径下有3-8个文件夹不等 四级路径:a.jpg,b.jpg,c.jpg等数量不等的图片文件 思路 1.一个全局变量:数组类型obj。 2.递归遍历目录,是文件夹的取出名字,建立一个对象,放入文件夹名name和一个空数组list,如 { name:'fileName', list:[]//用来存放下属路径} 3.依次重复步骤2,直至寻找到路径下的文件,将……

<
1
>

Copyright 2018-2020 xz577.com 码农之家

电子书资源由网友、会员提供上传,本站记录提供者的基本信息及资源来路

鸣谢: “ 码小辫 ” 公众号提供回调API服务、“ 脚本CDN ”提供网站加速(本站寻求更多赞助支持)

版权投诉 / 书籍推广 / 赞助:520161757@qq.com

上传资源(网友、会员均可提供)

查看最新会员资料及资源信息