一、JSONP是一种较为规范和通用的解决ajax跨域访问限制的方式

二、ajax跨域访问限制:基于安全的原因,浏览器采用同源策略,其阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档;所谓同源要求域名和端口全部一致,例如 1.example.com 和2.example.com 就非同源,example.com:80 和 example.com:8080 亦非同源。

三、jsonp的原理:带有src属性标签的跨域资源获取能力,在jsonp中通常使用标签,因为标签获取的跨域资源可以使用回调函数直接处理

jsonp的实现:

前端代码:

function callback(data){

console.log(data);

}

后台代码

if(isset($_GET["callback"])){

$server_name = $_SERVER["SERVER_NAME"];

$path = $_SERVER["PHP_SELF"];

$query_string = $_SERVER["QUERY_STRING"];

if($query_string!=""&&$query_string!=null){

$query_paras = explode("&",$query_string);

$query_array = array();

$query_length = count($query_paras);

for($i=0;$i

$paras = explode("=",$query_paras[$i]);

$query_array[$paras[0]]=$paras[1];

}

$data = array("server_name"=>$server_name,"path"=>$path,"query_paras"=>$query_array);

}else{

$data = array("server_name"=>$server_name,"path"=>$path);

}

$callback = $_GET["callback"];

echo $callback . "(" . json_encode($data) . ")";

后台服务器将需要返回的json数据进行封装,然后并不直接返回json,而是返回一句js代码,

echo $callback . "(" . json_encode($data) . ")";这句代码将返回的json数据调用回调函数直接进行处理

四、zepto实现jsonp

function getData(){

$.ajax({

type: 'GET',url: '//www.homeworksong.sinaapp.com/getUrlInfo.PHP?callback=?',timeout: 300,context: $('tbody'),data: { name: 'Zepto',type:"JSONP" },success: function(data){

console.log(data);

},error: function(xhr,type){

alert('Ajax error!')

}

});

}五、kissy实现jsonp

require(["io","node","util"],function(IO,$,Util){

IO.jsonp("http://www.homeworksong.sinaapp.com/getUrlInfo.PHP",{type:"JSONP",name:"Kissy" },function(data){

console.log(data);

});

});

});

总结

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。

zepto ajax jsonp,JSONP的使用(在zepto和kissy下使用)相关推荐

  1. zepto ajax php实例,读Zepto源码之Ajax模块

    Ajax 模块也是经常会用到的模块,Ajax 模块中包含了 jsonp 的现实,和 XMLHttpRequest 的封装. 读 Zepto 源码系列文章已经放到了github上,欢迎star: rea ...

  2. 原生js实现Ajax,JSONP

    Ajax内部的几个执行步骤 创建XMLHttpRequest对象(new XMLHttpRequest()) 设置请求头(setRequestHeader) 连接服务器(open()) 设置回调(on ...

  3. ajax和jsonp

    一. ajax 1. ajax技术的目的是让javascript发送http请求,与后台通信,获取数据和信息.ajax技术的原理是实例化xmlhttp对象,使用此对象与后台通信.ajax通信的过程不会 ...

  4. 原生JS实现Ajax和JSONP跨域请求

    背景: 对接身份证录入和门锁卡号录入设备中,安装驱动完成后,提供的接口服务是http://localhost:8099/?cmd=readbcardid&charset=gbk,返回的数据格式 ...

  5. Ajax和Jsonp实践

    之前一直使用jQuery的ajax方法,导致自己对浏览器原生的XMLHttpRequest对象不是很熟悉,于是决定自己写下,以下是个人写的deom,发表一下,聊表纪念. Ajax 和 jsonp 的j ...

  6. AJAX全套(JSONP、CORS)

    概述 对于WEB应用程序:用户浏览器发送请求,服务器接收并处理请求,然后返回结果,往往返回就是字符串(HTML),浏览器将字符串(HTML)渲染并显示浏览器上. 1.传统的Web应用 一个简单操作需要 ...

  7. 原生JavaScript实现AJAX、JSONP

    相信大部分前端开发者经常会用jquery的ajax方法与后台进行交互,但是有些时候,我们只需要用到ajax请求数据,而其他的功能几乎用不到,所以就需要知道原生js的ajax请求方法. ajax简介 a ...

  8. jquery下的ajax和jsonp实现与区别

    json和jsonp和ajax的实质和区别 ajax的两个问题 1.ajax以何种格式来交换数据 2.跨域的需求如何解决 数据跨域用自定义字符串或者用XML来描述 跨域可以用服务器代理来解决 json ...

  9. ajax的jsonp原理,jsonp 跨域原理和用法(上篇)

    出于对网站安全性的要求,两个不同域名的网站之间是不能通过前端技术互相发送请求的.但有时我们又需要使用这样的机制.比如:网站需要制作一个天气预报插件,或者需要开发两个网站,一个供外部用户使用,一个供内部 ...

  10. php cors和jsonp,jsonp和CORS跨域实现

    搜索热词 写js时总是会遇到跨域请求的问题,现在了解了两种方法,记录之: 1)jsonp,使用jquery封装的$.ajax,返回数据类型要设置为jsonp,示例: $.ajax({ type: 'g ...

最新文章

  1. ARC107——D - Number of Multisets
  2. 基于嵌入式操作系统VxWorks的多任务并发程序设计――中断与任务
  3. linux system函数传参,Linux系统调用例程system_call和参数传递
  4. 命令行设置dns_dos命令netsh图文教程,设置修改IP地址子网掩码网关命令行改dns...
  5. 计算机编程思想 —— 缓存
  6. c语言汽水瓶编程,汽水瓶 题目(C语言代码)
  7. 来,同学,坐下,谈谈对Dex文件的认识
  8. 分布式事务 java代码_Java分布式事务概念与实现示例
  9. php什么是耦合关系,什么是耦合
  10. 主流编程语言的介绍及特点
  11. plist 文件详解
  12. Word2016更改不同的级别标题序号:如2.2 ,2.2.1类标题序号
  13. fatal error C1001: An internal error has occurred in the compiler
  14. php如何配置gii,深入浅析yii2-gii自定义模板的方法
  15. 一位资深程序员大牛给予Java初学者的学习建议
  16. “爱什么,来什么”,本地生活饿了么
  17. 英语日常用语900句(5)
  18. 微信小程序module.exports 模块化
  19. 基于GLSurfaceView的视频播放器偶现无画面的问题分析
  20. 网络系统管理 7、DBMS(MariaDB)

热门文章

  1. 罗兰贝格:全球半导体短缺将在2022年之后持续数年
  2. java字节码转换_Java源程序如何变成Java字节码?
  3. 【前后端分离项目实现图片上传】
  4. 推荐一些比较好用的一键安装操作系统的软件
  5. 关于ideal中log文件显示问号且双击无法打不开的解决方法
  6. C实现猫吃老鼠问题。。。。。
  7. Newcoder:把字符串转换成整数
  8. [hadoop全分布部署]安装Hadoop、验证Hadoop①
  9. html自动切换图片怎么白屏,CSS 如何影响首次加载时的白屏时间的解决方法
  10. 【CSS颜色指南】:看完这一篇就明白CSS常见颜色表示方法