欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

用nodejs實(shí)現(xiàn)json和jsonp服務(wù)的方法

 更新時(shí)間:2017年08月25日 14:55:07   作者:lengyuhong  
本篇文章主要介紹了用nodejs實(shí)現(xiàn)json和jsonp服務(wù)的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

一、JSON和JSONP

JSONP的全稱是JSON with Padding,由于同源策略的限制,XmlHttpRequest只允許請(qǐng)求當(dāng)前源(協(xié)議,域名,端口)的資源。如果要進(jìn)行跨域請(qǐng)求,我們可以通過使用html的script標(biāo)記來進(jìn)行跨域請(qǐng)求,并在相應(yīng)中返回要執(zhí)行的script代碼,其中可以直接使用JSON傳遞javascript對(duì)象。這種跨域的通訊方式成為JSONP。

由此我們可以看出兩者的區(qū)別:

json: 一種輕量級(jí)的數(shù)據(jù)格式。

 jsonp:為實(shí)現(xiàn)跨域,而采用的一種腳本注入方法。

備注:要了解更多json,可以參見我原先寫的一篇介紹json的文章:《JSON那些事》

二、實(shí)現(xiàn)

為了簡(jiǎn)單起見,我們要讀取數(shù)據(jù)都是

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

1. 服務(wù)器端代碼:

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中g(shù)etJSON()方法可以參見:http://www.w3school.com.cn/jquery/ajax_getjson.asp

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼

    本篇文章主要介紹了詳解基于Node.js的微信JS-SDK后端接口實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • 從零開始學(xué)習(xí)Node.js

    從零開始學(xué)習(xí)Node.js

    這篇文章主要介紹了從零開始學(xué)習(xí)Node.js結(jié)合具體實(shí)例形式分析了使用方法與相關(guān)注意事項(xiàng),需要的朋友可以參考下,希望能夠給你帶來幫助
    2021-09-09
  • node.js版本降級(jí)/升級(jí)的實(shí)現(xiàn)

    node.js版本降級(jí)/升級(jí)的實(shí)現(xiàn)

    在項(xiàng)目開發(fā)過程中,不同項(xiàng)目使用的nodejs版本不同,有時(shí)會(huì)因?yàn)閚ode版本過高或太低,導(dǎo)致報(bào)錯(cuò),本文主要介紹了node.js版本降級(jí)/升級(jí)的實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 使用nodejs寫接口的詳細(xì)步驟

    使用nodejs寫接口的詳細(xì)步驟

    這篇文章主要給大家介紹了關(guān)于使用nodejs寫接口的詳細(xì)步驟,在Node.js中接口可以采用多種形式,包括函數(shù)接口、對(duì)象接口和事件接口等,需要的朋友可以參考下
    2023-10-10
  • 使用VS開發(fā) Node.js指南

    使用VS開發(fā) Node.js指南

    這篇文章主要介紹了使用VS開發(fā) Node.js的方法,主要是使用NTVS(Node.js Toolsfor Visual Studio)來實(shí)現(xiàn),有需要的小伙伴參考下
    2015-01-01
  • node.js express框架實(shí)現(xiàn)文件上傳與下載功能實(shí)例詳解

    node.js express框架實(shí)現(xiàn)文件上傳與下載功能實(shí)例詳解

    這篇文章主要介紹了node.js express框架實(shí)現(xiàn)文件上傳與下載功能,結(jié)合具體實(shí)例形式詳細(xì)分析了node.js express框架針對(duì)文件上傳與下載的前后臺(tái)相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • koa源碼中promise的解讀

    koa源碼中promise的解讀

    這篇文章主要介紹了koa源碼中promise的解讀,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • 深入分析node.js的異步API和其局限性

    深入分析node.js的異步API和其局限性

    這篇文章首先給大家介紹了為什么要用異步API,其次node.js異步api在使用過程有一些什么樣的限制呢,對(duì)于這個(gè)問題我們下面來看看這篇關(guān)于node.js異步的介紹分析吧,有需要的可以參考借鑒。
    2016-09-09
  • 詳解nodejs解壓版安裝和配置(帶有搭建前端項(xiàng)目腳手架)

    詳解nodejs解壓版安裝和配置(帶有搭建前端項(xiàng)目腳手架)

    這篇文章主要介紹了詳解nodejs解壓版安裝和配置(帶有搭建前端項(xiàng)目腳手架) ,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-12-12
  • NVM管理node版本以及報(bào)錯(cuò)解決

    NVM管理node版本以及報(bào)錯(cuò)解決

    在開發(fā)過程中有時(shí)候會(huì)遇到老項(xiàng)目和新項(xiàng)目node版本不一致的情況,這篇文章主要給大家介紹了關(guān)于NVM管理node版本以及報(bào)錯(cuò)解決方法的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12

最新評(píng)論