博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
js/ajax跨域访问—jsonp的原理和实例(javascript和jquery)
阅读量:5270 次
发布时间:2019-06-14

本文共 937 字,大约阅读时间需要 3 分钟。

阅读原文:

很庆幸,我又见到了末日后新升的太阳,所以我还能在这里写文章,言归正传哈,最近做了一个项目,需要用子域名调用主域名下的一个现有的功能,于是想到了用jsonp来解决,在我们平常的项目中不乏有这种需求的朋友,于是记录下来以便以后查阅同时也希望能帮到大家。

什么是JSONP协议?

JSONP即JSON with Padding。由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的资源。如果要进行跨域请求,我们可以通过使用html的script标记来进行跨域请求,并在响应中返回要执行的script代码,其中可以直接使用JSON传递javascript对象。这种跨域的通讯方式称为JSONP。
很明显,JSONP是一种脚本注入(Script Injection)行为,需要特别注意其安全性。

Jquery中的jsonp实例

我们需要两个页面,分别承担协议的客户端和服务器端角色。

客户端代码:

       jsonp测试例子                     远程数据如下:

服务端代码(本例采用PHP):

效果演示:

Jsonp的原理和简单实例

jquery是对其进行了封装,你可能看不到真正的实现方法,我们用下面的一个例子进行说明:

客户端代码:

  
jsonp测试例子

服务端代码:

效果展示:

别的不多说,相信看代码大家应该明白它是怎么实现的了。

需要注意:

1.由于 jquery 在ajax 处理中使用的是utf-8编码传递参数的,所以jsonp处理端用utf-8的编码最好,这样省得编码转换了,如果不是utf-8记得转换,否则中文会乱码。

2.请求的服务端url最好不要写成http://www.yzswyl.cn/?act=add这样的,应写全其为:这样的,在应用的过程中出现了不兼容的情况。

到此就ok了,如有朋友碰到什么问题可发上来大家共同交流。

转载于:https://www.cnblogs.com/xuejie/archive/2012/12/25/2832595.html

你可能感兴趣的文章
Linux df 命令查看共享文件夹
查看>>
重构心法——分解大函数
查看>>
SUSE下FTP服务器搭建
查看>>
Add Binary
查看>>
历届试题 地宫取宝 记忆化搜索
查看>>
函数返回值
查看>>
报表参数控件和报表内容自动居中设置方法
查看>>
centos6 & centos7搭建ntp服务器
查看>>
Beyond Compare 3 设置自动换行
查看>>
不允许保存更改。您所做的更改要求删除并重新创建以下表。您对无法重新创建的表进...
查看>>
Yii的操作提示框
查看>>
JS高级----------------->构造函数跟实例对象之间的关系
查看>>
Java核心-多线程-并发控制器-CyclicBarrier同步屏障
查看>>
Hadoop中配置环境后重启失效解决方法
查看>>
20145236《信息安全系统设计基础》第8周学习总结
查看>>
Flight学习(一)
查看>>
jQuery中的事件监听小记
查看>>
java实现精简版计算器
查看>>
受伤的总是我
查看>>
以太坊系列之一: 以太坊RLP用法-以太坊源码学习
查看>>