博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跨域请求解决方案jsonp
阅读量:7017 次
发布时间:2019-06-28

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

hot3.png

jsonp跨域解决方案原理介绍:

正常情况下由于同源策略,前端js中A网站无法请求B网站数据,而html的script元素开放策略,A网站可以利用script元素从B网站获取可执行的js语句。在这种前提条件下,如果在A网站js中定义一个方法function funcCallback(data){},并且在B网站后台返回这个funCallback(data),那么A网站就可以通过加载script元素请求B网站,然后再通过funcCallback方法获取来自B网站的数据。

例子: A.html

 

B网站后台,如java:

public void doGet(HttpServletRequest request,   HttpServletResponse response) throws ServletException, IOException {    response.getWriter().write("funCallback('hello');");}

从上面的例子中,可以使得A网站获取B网站的数据hello,注意后台输出的一定要是对应的js语句。

下面我们来说说,如何使用jsonp规范交互请求。

我们可以在A网站通过ajax去请求B网站的数据,一般数据以json格式传递。可以看一个例子。

A网站:

 

B网站后台,如java:

public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {    String jsonpcallback = request.getParameter("jsonpcallback");    response.getWriter().write(jsonpcallback + "{name: \"hello\"};");}

最后几个jsonp使用的注意点:

*只能发送get请求*只能异步请求*url前缀记得加上http://

转载于:https://my.oschina.net/chenhao901007/blog/415351

你可能感兴趣的文章
Nginx 0.8.x + PHP 5.2.13(FastCGI)搭建胜过Apache十倍的W...
查看>>
eclipse连接android设备的问题
查看>>
.pem引发的血案
查看>>
如何在rootscope 获取angular ui的tab子域 scope 也叫子域暴露
查看>>
HashMap,HashTable,HashSet区别
查看>>
如何学习iOS开发——对新手的几句废话
查看>>
无延时显示Toast的方法
查看>>
算法学习笔记(四)---第k个二进制数字问题
查看>>
忘记sa密码,又删除了windows身份验证账号的解决方法
查看>>
如何判断 Linux 是否运行在虚拟机上
查看>>
通过注册表开通关闭局域网共享
查看>>
Asp.net 导入导出Excel
查看>>
Oracle 10.2.0.4(5)EM不能启动的解决方案
查看>>
AngularJS—— 独立作用域
查看>>
缓存Redis和Memcached的使用和对比
查看>>
Android开机自动运行APP——BroadcastReceiver
查看>>
java.io几种读写文件的方式
查看>>
Spring中常用的注解(@Entity,@Table,@Column,@Repository,@Service)
查看>>
SharePoint 2013 配置传入电子邮件(一)
查看>>
Linux命令篇之chsh命令和chfn命令
查看>>