SlideShare uma empresa Scribd logo
1 de 10
JSONP
by Jax
JSON ( JavaScript Object Notation )
• 一種輕量級的資料交換語言
• 獨立於語言的文字格式
• {"Name": "

", "Id" : 1823, "Rank": 7}
JSONP ( JSON with Padding )
• JSON 的一種「使用模式」
• 可以讓網頁從別的網域要資料

<script type="text/javascript" src="http://example.com/RetrieveUser?callback=parseResponse">
</script>
parseResponse({"Name": "Cheeso", "Id" : 1823, "Rank": 7})
建立 WebApi
教學網站 Your First ASP.NET Web API
• http://www.asp.net/web-api/overview/getting-started-with-aspnet-webapi/tutorial-your-first-web-api
安裝 NuGet 套件
WebApiContrib.Formatting.Jsonp
在 Global.asax.cs 加入
FormatterConfig.RegisterFormatters(GlobalConfiguration.Configuration.Formatters);
建立 App_Start/FormatterConfig.cs
public class FormatterConfig
{
public static void RegisterFormatters(MediaTypeFormatterCollection formatters)
{
formatters.JsonFormatter.SerializerSettings = new JsonSerializerSettings
{
ContractResolver = new CamelCasePropertyNamesContractResolver()
};

// Insert the JSONP formatter in front of the standard JSON formatter.
formatters.Insert(0, new JsonpMediaTypeFormatter(formatters.JsonFormatter));
}
}
修改 App_Start/WebApiConfig.cs
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}/{format}",
defaults: new {
id = RouteParameter.Optional,
format = RouteParameter.Optional
}
);
最簡單的呼叫方式
/* functionCall({"Name": "Cheeso", "Id" : 1823, "Rank": 7}) */
<script type="text/javascript">
function functionCall(data){
console.log(data);
}
</script>
<script type="text/javascript" src="/api/products/2?callback=functionCall"></script>
如何使用 jQuery 連接
$.getJSON("/api/products/2?callback=?", function (data) {
console.log(data);
});

$.ajax({
type: "get",
url: "/api/products/2",
dataType: "jsonp",
jsonp: "callback",
success: function (data) {
console.log(data);
}
});

Mais conteúdo relacionado

Mais procurados

Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇fangdeng
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析iammutex
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110bngoogle
 
移动搜索在慢网速下的优化
移动搜索在慢网速下的优化移动搜索在慢网速下的优化
移动搜索在慢网速下的优化Charlee Green
 
JavaScript Lab3 - Dynamic Time Board
JavaScript Lab3 - Dynamic Time BoardJavaScript Lab3 - Dynamic Time Board
JavaScript Lab3 - Dynamic Time BoardRyan Chung
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例Will Huang
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案美团技术团队
 
Make your web faster
Make your web fasterMake your web faster
Make your web faster德生 谭
 
JavaScript Lab1 - Random Selector
JavaScript Lab1 - Random SelectorJavaScript Lab1 - Random Selector
JavaScript Lab1 - Random SelectorRyan Chung
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門Will Huang
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercuryZoom Quiet
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and TutorialHo Kim
 
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现Lixun Peng
 
Web coding principle
Web coding principleWeb coding principle
Web coding principleZongYing Lyu
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能Rack Lin
 

Mais procurados (20)

Style基础优化之独角兽篇
Style基础优化之独角兽篇Style基础优化之独角兽篇
Style基础优化之独角兽篇
 
NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析NoSQL误用和常见陷阱分析
NoSQL误用和常见陷阱分析
 
Php study.20130110
Php study.20130110Php study.20130110
Php study.20130110
 
移动搜索在慢网速下的优化
移动搜索在慢网速下的优化移动搜索在慢网速下的优化
移动搜索在慢网速下的优化
 
JavaScript Lab3 - Dynamic Time Board
JavaScript Lab3 - Dynamic Time BoardJavaScript Lab3 - Dynamic Time Board
JavaScript Lab3 - Dynamic Time Board
 
Hbase
HbaseHbase
Hbase
 
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
使用 TypeScript 駕馭 Web 世界的脫韁野馬:以 Angular 2 開發框架為例
 
Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案Truck js 高性能移动web开发解决方案
Truck js 高性能移动web开发解决方案
 
Berserk js
Berserk jsBerserk js
Berserk js
 
Node分享 展烨
Node分享 展烨Node分享 展烨
Node分享 展烨
 
Mesos intro
Mesos introMesos intro
Mesos intro
 
Redis use cases
Redis use casesRedis use cases
Redis use cases
 
Make your web faster
Make your web fasterMake your web faster
Make your web faster
 
JavaScript Lab1 - Random Selector
JavaScript Lab1 - Random SelectorJavaScript Lab1 - Random Selector
JavaScript Lab1 - Random Selector
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury110412 kningsoft-mongo db-intro-usage-in-mercury
110412 kningsoft-mongo db-intro-usage-in-mercury
 
MongoDB Basics and Tutorial
MongoDB Basics and TutorialMongoDB Basics and Tutorial
MongoDB Basics and Tutorial
 
对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现对MySQL的一些改进想法和实现
对MySQL的一些改进想法和实现
 
Web coding principle
Web coding principleWeb coding principle
Web coding principle
 
改善Programmer生活的sql技能
改善Programmer生活的sql技能改善Programmer生活的sql技能
改善Programmer生活的sql技能
 

Destaque

Anney 20130726 tf_command_line
Anney 20130726 tf_command_lineAnney 20130726 tf_command_line
Anney 20130726 tf_command_lineLearningTech
 
Css less 深入剖析
Css less 深入剖析Css less 深入剖析
Css less 深入剖析LearningTech
 
What s jsonp_nat_20140221
What s jsonp_nat_20140221What s jsonp_nat_20140221
What s jsonp_nat_20140221LearningTech
 
Dot Net 串接 SAP
Dot Net 串接 SAPDot Net 串接 SAP
Dot Net 串接 SAPLearningTech
 
Asp.net mvc security
Asp.net mvc securityAsp.net mvc security
Asp.net mvc securityLearningTech
 

Destaque (7)

Linq 溫故知新
Linq 溫故知新Linq 溫故知新
Linq 溫故知新
 
Anney 20130726 tf_command_line
Anney 20130726 tf_command_lineAnney 20130726 tf_command_line
Anney 20130726 tf_command_line
 
Css less 深入剖析
Css less 深入剖析Css less 深入剖析
Css less 深入剖析
 
What s jsonp_nat_20140221
What s jsonp_nat_20140221What s jsonp_nat_20140221
What s jsonp_nat_20140221
 
Dot Net 串接 SAP
Dot Net 串接 SAPDot Net 串接 SAP
Dot Net 串接 SAP
 
Asp.net mvc security
Asp.net mvc securityAsp.net mvc security
Asp.net mvc security
 
Jar signing
Jar signingJar signing
Jar signing
 

Semelhante a Jsonp

App inventor 3
App inventor 3App inventor 3
App inventor 3Roy Wang
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node jsFrank Cheung
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax LucenceRoger Xia
 
【第一季•第六期】Ajax & JSONP in Action
【第一季•第六期】Ajax & JSONP in Action【第一季•第六期】Ajax & JSONP in Action
【第一季•第六期】Ajax & JSONP in Actiontbosstraining
 
钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会Zhi Zhong
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Servicesjavatwo2011
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSPJustin Lin
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!Will Huang
 
EventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianEventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianJackson Tian
 
Event proxy introduction
Event proxy introductionEvent proxy introduction
Event proxy introductionmysqlops
 
2015.07.22 新人報告(3)
2015.07.22 新人報告(3)2015.07.22 新人報告(3)
2015.07.22 新人報告(3)Chih-Wei Chuang
 
jsonschema,orderly and jsonnanny
jsonschema,orderly and jsonnannyjsonschema,orderly and jsonnanny
jsonschema,orderly and jsonnannysodabiscuit
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践taobao.com
 
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSPServlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSPJustin Lin
 
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile ServicesKuo-Chun Su
 
J2ee面试知识
J2ee面试知识J2ee面试知识
J2ee面试知识yiditushe
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践Jackson Tian
 
没有Xhr,ajax精彩依旧
没有Xhr,ajax精彩依旧没有Xhr,ajax精彩依旧
没有Xhr,ajax精彩依旧vinqon
 

Semelhante a Jsonp (20)

App inventor 3
App inventor 3App inventor 3
App inventor 3
 
Json知识分享
Json知识分享Json知识分享
Json知识分享
 
史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js史前的Ssjs——从js的asp到node js
史前的Ssjs——从js的asp到node js
 
Ajax Lucence
Ajax LucenceAjax Lucence
Ajax Lucence
 
【第一季•第六期】Ajax & JSONP in Action
【第一季•第六期】Ajax & JSONP in Action【第一季•第六期】Ajax & JSONP in Action
【第一季•第六期】Ajax & JSONP in Action
 
钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会钟志 第八期Web标准化交流会
钟志 第八期Web标准化交流会
 
用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services用JAX-RS和Jersey完成RESTful Web Services
用JAX-RS和Jersey完成RESTful Web Services
 
Ch06 使用 JSP
Ch06 使用 JSPCh06 使用 JSP
Ch06 使用 JSP
 
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
進擊的前端工程師:今天就用 JSON Server 自己打造 API 吧!
 
EventProxy introduction - JacksonTian
EventProxy introduction - JacksonTianEventProxy introduction - JacksonTian
EventProxy introduction - JacksonTian
 
Event proxy introduction
Event proxy introductionEvent proxy introduction
Event proxy introduction
 
2015.07.22 新人報告(3)
2015.07.22 新人報告(3)2015.07.22 新人報告(3)
2015.07.22 新人報告(3)
 
jsonschema,orderly and jsonnanny
jsonschema,orderly and jsonnannyjsonschema,orderly and jsonnanny
jsonschema,orderly and jsonnanny
 
Node.js在淘宝的应用实践
Node.js在淘宝的应用实践Node.js在淘宝的应用实践
Node.js在淘宝的应用实践
 
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSPServlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
Servlet & JSP 教學手冊第二版 - 第 6 章:使用 JSP
 
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
從 Web Site 到 Web Application,從 Web Services 到 Mobile Services
 
J2ee面试知识
J2ee面试知识J2ee面试知识
J2ee面试知识
 
D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践D2_Node在淘宝的应用实践
D2_Node在淘宝的应用实践
 
Jsp讲义
Jsp讲义Jsp讲义
Jsp讲义
 
没有Xhr,ajax精彩依旧
没有Xhr,ajax精彩依旧没有Xhr,ajax精彩依旧
没有Xhr,ajax精彩依旧
 

Mais de LearningTech

Mais de LearningTech (20)

vim
vimvim
vim
 
PostCss
PostCssPostCss
PostCss
 
ReactJs
ReactJsReactJs
ReactJs
 
Docker
DockerDocker
Docker
 
Semantic ui
Semantic uiSemantic ui
Semantic ui
 
node.js errors
node.js errorsnode.js errors
node.js errors
 
Process control nodejs
Process control nodejsProcess control nodejs
Process control nodejs
 
Expression tree
Expression treeExpression tree
Expression tree
 
SQL 效能調校
SQL 效能調校SQL 效能調校
SQL 效能調校
 
flexbox report
flexbox reportflexbox report
flexbox report
 
Vic weekly learning_20160504
Vic weekly learning_20160504Vic weekly learning_20160504
Vic weekly learning_20160504
 
Reflection &amp; activator
Reflection &amp; activatorReflection &amp; activator
Reflection &amp; activator
 
Peggy markdown
Peggy markdownPeggy markdown
Peggy markdown
 
Node child process
Node child processNode child process
Node child process
 
20160415ken.lee
20160415ken.lee20160415ken.lee
20160415ken.lee
 
Peggy elasticsearch應用
Peggy elasticsearch應用Peggy elasticsearch應用
Peggy elasticsearch應用
 
Expression tree
Expression treeExpression tree
Expression tree
 
Vic weekly learning_20160325
Vic weekly learning_20160325Vic weekly learning_20160325
Vic weekly learning_20160325
 
D3js learning tips
D3js learning tipsD3js learning tips
D3js learning tips
 
git command
git commandgit command
git command
 

Jsonp