用nodejs实现json和jsonp服务的方法
2017-08-25 14:55
806 查看
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
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- 用nodejs实现json和jsonp服务
- 用nodejs实现json和jsonp服务
- 用nodejs实现json和jsonp服务
- .Net整合Json实现REST服务客户端的方法详解
- 跨域访问:jquery ajax jsonp的实现方法(jsp和action方式)
- Web服务的几种实现方法
- [导入].Net3.5扩展方法实现对象JSON序列化
- 在Spring框架中用AOP实现WEB服务的方法
- 使用 jquery + json 实现ajax的方法
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 使用Jquery中getJSON方法实现跨域
- jsonToxml 通过LL型方法实现(C#)[源]
- 利用JQuery jsonp实现Ajax跨域请求 .Net 的*.handler 和 WebService,返回json数据
- jquery下利用jsonp跨域访问实现方法
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- 实现TOMCAT服务下一个ip绑定多域名绑定的方法
- 如何:使用回调方法实现异步 Web 服务客户端
- 《WF编程》系列之19 - 触发事件与调用方法:服务以及工作流的实现
- 在C#中使用异步Socket编程实现TCP网络服务的C/S的通讯构架(二)----使用方法
- .Net3.5扩展方法实现对象JSON序列化