您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

json与jsonp使用小结

2024/6/18 9:42:36发布33次查看
这次给大家带来json与jsonp使用小结,json与jsonp使用的注意事项有哪些,下面就是实战案例,一起来看一下。
json
1. json 的值可以是下面这些类型:
① 数字(整数或浮点数),比如123,1.23
② 字符串(在双引号中)
③ 逻辑值(true 或 false)
④ 数组(在方括号中)
⑤ 对象(在花括号中)
⑥ null
2. json解析方法
① eval('(' + jsondata + ')' ); 使用时永远是不安全的,代码注入
② json.parse(jsondata);
jsonlint json:字符串校验工具
3. jquery 实现ajax
jquery.ajax([settings])
type :类型
url :发送请求的地址
data :是一个对象,连同请求发送到服务器的数据
datatype :预期服务器返回的数据类型,如果不指定,jquery 将自动根据http包mime信息来智能判断,一般我们采用json 格式,可以设置为”json”
success :是一个方法,请求成功后的的回调函数,传入返回后的数据,以及包含成功代码的字符串
error :是一个方法,请求失败时调用此函数。传入 xmlhttprequest 对象
jsonp
跨域
一个域名地址的组成:
http://www .abc.com :8080 / scripts/jquery.js
协议://子域名. 主域名 :端口号 / 请求资源地址
当协议、子域名、主域名、端口号中任意一个不行同时,都算作不同域
不同域之间相互请求资源,就算作“跨域”
javascript 出于安全方面的考虑,不允许跨域调用其他页面的对象。
什么是跨域呢? 简单的解释就是因为javascript同源策略的限制,a.com 域名下的js无法操作b.com 或是 c.a.com域名下的对象
处理跨域方法:
—— 代理(属于后台技术)比如在北京的web服务器的后台来调用上海服务器的服务,看然后再把响应结果返回给前端,这样前端调用北京同域名的服务器就和调用上海的服务效果相同了。
—— jsonp
a域名去声明,b域名去调用
注意:jsonp只能用于get 请求,不支持post请求(局限性)
—— xhr2
html5 提供的xmlhttprequest level2 已经实现了跨域访问以及其他的一些新功能
ie10 以下的版本都不支持
在服务端做一些小小的改造即可:
header(access-control-allow-origin:); 表示所有的服务器都可以访问,也可以替换成特定的域名,比如说:服务器在上海,*换成北京服务器的域名,这样只有从北京的域名才可以访问
header(access-control-allow-methods:post,get);
下面说下jsonp 的优缺点。
同源策略 :即javascript只能访问与包含它的文档在同一域下的内容。jsonp可以跨越同源策略,当我们使用了jsonp,将会是另外一种协议通信了。
jsonp的优点是:它不像xmlhttprequest对象实现的ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都可以运行,不需要xmlhttprequest或activex的支持;并且在请求完毕后可以通过调用callback的方式回传结果。
jsonp的缺点则是:它只支持get请求而不支持post等其它类型的http请求;它只支持跨域http请求这种情况,不能解决不同域的两个页面之间如何进行javascript调用的问题。
相信看了本文案例你已经掌握了方法,更多精彩请关注其它相关文章!
推荐阅读:
jquery中ajax执行顺序调整
ajax与$.ajax实例详解
jquery怎么做出监控页面ajax请求
以上就是json与jsonp使用小结的详细内容。
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product