Jsonp(JSON with Padding)是资料格式 json 的一种“使用模式”,可以让网页从别的网域获取资料。

关于Jsonp更详细的资料请参考http://baike.baidu.com/view/2131174.htm,下面给出例子:

一.客户端

Html代码  
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  5. <title>Insert title here</title>
  6. <script type="text/javascript" src="resource/js/jquery-1.7.2.js"></script>
  7. </head>
  8. <script type="text/javascript">
  9. $(function(){
  10. /*
  11. //简写形式,效果相同
  12. $.getJSON("http://app.example.com/base/json.do?sid=1494&busiId=101&jsonpCallback=?",
  13. function(data){
  14. $("#showcontent").text("Result:"+data.result)
  15. });
  16. */
  17. $.ajax({
  18. type : "get",
  19. async:false,
  20. url : "http://app.example.com/base/json.do?sid=1494&busiId=101",
  21. dataType : "jsonp",//数据类型为jsonp
  22. jsonp: "jsonpCallback",//服务端用于接收callback调用的function名的参数
  23. success : function(data){
  24. $("#showcontent").text("Result:"+data.result)
  25. },
  26. error:function(){
  27. alert('fail');
  28. }
  29. });
  30. });
  31. </script>
  32. <body>
  33. <div id="showcontent">Result:</div>
  34. </body>
  35. </html>

二.服务器端

Java代码  
  1. import java.io.IOException;
  2. import java.io.PrintWriter;
  3. import java.util.HashMap;
  4. import java.util.Map;
  5. import javax.servlet.http.HttpServletRequest;
  6. import javax.servlet.http.HttpServletResponse;
  7. import net.sf.json.JSONObject;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. @Controller
  11. public class ExchangeJsonController {
  12. @RequestMapping("/base/json.do")
  13. public void exchangeJson(HttpServletRequest request,HttpServletResponse response) {
  14. try {
  15. response.setContentType("text/plain");
  16. response.setHeader("Pragma", "No-cache");
  17. response.setHeader("Cache-Control", "no-cache");
  18. response.setDateHeader("Expires", 0);
  19. Map<String,String> map = new HashMap<String,String>();
  20. map.put("result", "content");
  21. PrintWriter out = response.getWriter();
  22. JSONObject resultJSON = JSONObject.fromObject(map); //根据需要拼装json
  23. String jsonpCallback = request.getParameter("jsonpCallback");//客户端请求参数
  24. out.println(jsonpCallback+"("+resultJSON.toString(1,1)+")");//返回jsonp格式数据
  25. out.flush();
  26. out.close();
  27. } catch (IOException e) {
  28. e.printStackTrace();
  29. }
  30. }
  31. }

JQuery+ajax+jsonp 跨域访问相关推荐

  1. Jquery ajax jsonp跨域访问 返回格式及其获取方式 并实现单点登录SSO

    后台代码 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syst ...

  2. jquery ajax 解决跨域访问问题

    当使用jquery ajax进行跨域请求时,会出现Access-Control-Allow-Origin错误 //获取验证码 var send_status = true; $('#pull_code ...

  3. jsonp跨域访问服务

    前段时间在做产品开发的时候,需要与公司网站那边进行交互,我们所开发的产品上线后是放在一个域名下,公司网站那块是在另一个域名下,这样在页面中调用 网站那边的接口时就存在跨域的问题,当时为了不修改网站那边 ...

  4. ajax 跨域请求数据,JQuery Ajax执行跨域请求数据的解决方案

    JQuery Ajax执行跨域请求数据的解决方案 今天前端因为需要ajax调用两个不同的项目,请求域不一样,所以涉及ajax跨域的问题 ,其实很简单,具体如下 原来的ajax请求如下: $.ajax( ...

  5. jq中ajax请求跨域,jquery+ajax实现跨域请求的方法

    本文实例讲述了jquery+ajax实现跨域请求的方法.分享给大家供大家参考.具体实现方法如下: 说明:这里的dataType 为  "jsonp"  :type 只能为 GET ...

  6. vb跨域访问ajax,解决AJAX的跨域访问-两种有效示例

    这篇文章主要为大家详细介绍了解决AJAX的跨域访问-两种有效示例,具有一定的参考价值,可以用来参考一下. 感兴趣的小伙伴,下面一起跟随512笔记的小玲来看看吧!新的W3C策略实现了HTTP跨域访问,还 ...

  7. Ajax之跨域访问与JSONP

    前言 同源策略的限制,使得ajax无法发出跨域请求.在许多情况下,我们需要让ajax支持跨域.以下是其中一种解决方案(JSONP).JSONP解决了跨域数据访问的问题. 在html中,具有src属性的 ...

  8. [Ajax] 实现跨域访问

    跨域访问是什么 同源策略 所谓"同源"指的是"三个相同":协议相同.域名相同以及端口相同. Cookie.LocalStorage和lndexDB无法读取 DO ...

  9. 介绍一个JSONP 跨域访问代理API-yahooapis

    你是否遇到了想利用AJAX访问一些公网API,但是你又不想建立自己的代理服务,因为有时我根本就没打算涉及服务端任何代码,但是讨厌的浏览器的同源策略,阻止了我们的ajax调用. 比如我想访问一个天气的r ...

最新文章

  1. LeetCode简单题之环和杆
  2. Maven 无法下载 json-lib
  3. Java 集合 — HashMap
  4. MFC中的几个常用类——CWnd
  5. TensorFlow 教程——基本分类:对服装图像进行分类
  6. Maven 连接私服资源库配置
  7. Kafka消息处理与集群维护
  8. CSU-1982 小M的移动硬盘
  9. VUE:解决 [Vue warn]: Error in render: “TypeError: item.slice is not a function“ (取部分数据)
  10. linux历史性能数据,Linux平台下如何看OS历史的性能数据
  11. 20210819_Test
  12. 手机modem开发(20)---公平性测试
  13. Android高手进阶:Adapter深入理解与优化
  14. 利用openssl创建私有CA的步骤和过程
  15. Atitit 薪酬管理法 工作手册 员:薪酬管理办法 1.薪酬结构 所有员工的薪酬均由岗位工资、级别工资、校龄工资、特别津贴、绩效工资和季度奖金六部分组成。其中岗位工资、级别工资、校龄工资、22
  16. rt3070网卡 linux驱动,Linux下的WIFI驱动RT3070的编译移植
  17. android开发塔防游戏机,上手快又耐玩 五款Android平台塔防类游戏推荐
  18. 怎么用视频做gif动图?手把手教你制作gif表情包
  19. python爬虫cookie处理_Python爬虫(六)cookie相关的请求处理
  20. 优秀IT项目经理的基本要求

热门文章

  1. 如何顺利度过新人适应期
  2. 入门代码教程第一节 如何:定义服务协定
  3. React Native 集成
  4. sumif三个条件怎么填_Excel条件求和函数sumif详解及应用
  5. 大数据项目开发案例_大数据分析技术——项目案例2(房价数据分析上)
  6. Shellcode开发辅助工具shellnoob
  7. ajax百分比加载特效,jQuery实现的简单百分比进度条效果示例
  8. iPhone12 safeArea顶部区域尺寸变化
  9. python网页前端和react有什么区别_Vue与React两个框架的粗略区别对比
  10. d类功放芯片_【学术论文】应用于无滤波级D类音频功放的新型死区时间控制系统...