`
javalij
  • 浏览: 35428 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

跨域 jsonp

 
阅读更多

跨域有好多种方式,会根据当前的业务逻辑选择对应方式

这里介绍了jsonp的方法的实现过程

 

准备工作

模拟两个不同的域(下面用a.com 和b.com 来讲解)

a.com站点下面创建一个client.html 

b.com站点下面创建一个server.php

a.com站点通过js跨域请求b.com站点,我们利用script标签不受域访问限制特点进行请求(img标签同样有此特点),最主要的特点就是能执行请求返回来的js脚本

下面代码执行过程是

1、点击send按钮,创建script标签,为该标签src赋值后,添加到document中。

2、放到document中会立即请求b.com中的server.php ,请求的地址有个callback=resutl参数,这个result就是client.html中定义的一个js函数

3、server.php 返回一个'result("{\"message\",\"xxxxxx\"}")';

4、接着执行client.html中的js函数resut;

 

代码如下:

client.html 

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>jsonpClient.html</title>
	
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
    
    <!--<link rel="stylesheet" type="text/css" href="./styles.css">-->

  </head>
  <script type="text/javascript">
  	function createScript(){
  		var script = document.createElement("script");
		script.id="jsonid";
		script.src="http://b.com/server.php?q=sss&callback=result";
		document.body.appendChild(script);  		
  	}
  	
  	function result(data){
  		var dataJson = eval("("+data+")");
  		document.write(dataJson.message);
                document.body.removeChild(document.getElementById("jsonid"));

}
<body>
    <input type="button" value="send" onclick="createScript()"/>
  </body>
</html>

 

server.php 

q = $_REQUEST['p'];
callback = $_REQUEST['callback'];

处理过程省略
....
....
....
resutl="xxxxx";
echo callback+'("{\"message\",\"'+resutl+'\"}")';

 

 

 

分享到:
评论

相关推荐

    跨域jsonp资料包.zip

    在这个"跨域jsonp资料包.zip"中,我们可以深入探讨JSONP的工作原理、应用场景、优缺点以及相关的实现方法。 ### JSONP 的工作原理 1. **同源策略**:浏览器的同源策略限制了JavaScript只能访问与当前页面同源...

    day10单点登录Redis跨域jsonp共16页.pdf

    【标题】"day10单点登录Redis跨域jsonp共16页.pdf" 提供了几个关键主题,分别是单点登录(Single Sign-On, SSO)、Redis、跨域(Cross-Origin Resource Sharing, CORS)以及JSONP(JSON with Padding)。这些是IT...

    js跨域jsonp的使用

    本文将深入讲解JSONP的原理及其在解决跨域问题中的应用。 ### JSONP 原理 JSONP 的全称是“JSON with Padding”,它并非一种新的数据格式,而是利用了 `&lt;script&gt;` 标签不受同源策略限制的特点来绕过浏览器的跨域...

    跨域访问解决方法-jsonp

    本文将详细探讨JSONP的工作原理以及如何在实际项目中使用它来跨域获取JSON数据。 ### JSONP简介 JSONP全称为"JSON Padding",它并不是JSON的一种新格式,而是一种利用动态创建`&lt;script&gt;`标签来绕过同源策略的技巧...

    跨域jsonp1

    JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,设计用来使人类可...随着 CORS(跨源资源共享)等更安全的跨域技术的发展,JSONP 的使用逐渐减少,但仍不失为解决某些特定场景下跨域问题的有效手段。

    ajax跨域请求jsonp前后台代码

    基于ajax方式的跨域请求jsonp的前后台代码

    jsonp解决跨域.docx

    jsonp解决跨域 JsonP(JSON with Padding)是一种常用的解决跨域请求的技术。在本文中,我们将详细介绍 JsonP 的原理、作用、优缺点和使用场景。 1. 什么是跨域? 跨域是指在不同域名或端口号之间的请求调用。...

    SpringBoot跨域Jsonp和Cors的方法

    本文将深入探讨如何在SpringBoot框架中解决跨域问题,主要涉及两种方法:JSONP和CORS。 ### JSONP(JSON with Padding) JSONP是一种解决跨域问题的早期方案,它利用了`&lt;script&gt;`标签的`src`属性不受同源策略限制的...

    解决跨域封装的jsonp.js文件

    解决跨域封装的jsonp

    使用JSONP完成HTTP和HTTPS之间的跨域访问

    ### 使用JSONP完成HTTP和HTTPS之间的跨域访问 在现代Web开发中,跨域问题是一项常见挑战,尤其是在涉及不同协议(如HTTP与HTTPS)的数据交互时。本文将深入探讨如何利用JSONP(JSON with Padding)技术来实现HTTP与...

    跨域_jsonp_原理.js

    跨域_jsonp_原理,了解json的原理,等于我们掌握json的技术有帮助

    跨域解决方案

    1. 通过 jsonp 跨域:jsonp 是一种常见的解决方案,通常用于减轻 web 服务器的负载。我们可以通过动态创建 script 标签,请求一个带参数的网址实现跨域请求。 2. document.domain + iframe 跨域:此方案仅限主域相同...

    03_跨域与JSONP

    03_跨域与JSONP

    跨域解决之JSONP和CORS的详细介绍

    JSONP跨域和CORS跨域 什么是跨域? 跨域:指的是浏览器不能执行其它网站的脚本,它是由浏览器的同源策略造成的,是浏览器的安全限制! 同源策略 同源策略:域名、协议、端口均相同。 浏览器执行JavaScript脚本时,会...

    html通过 ajax jsonp跨域请求接收和传送数据

    2. **JSONP跨域**: JSONP的工作方式不同,它不依赖于XMLHttpRequest对象。首先,客户端在HTML页面中定义一个全局函数,如`handleData(data)`。然后,创建一个`&lt;script&gt;`标签,将`src`属性设置为服务器的URL,URL中...

    ajax跨域实例

    在本文中,我们将讨论两个 Ajax 跨域实例,分别使用 JSONP 和 jQuery 来实现跨域操作。 知识点一:JSONP 跨域 JSONP(JSON with Padding)是一种用于跨域操作的技术,它可以突破浏览器的同源策略限制。JSONP 的...

    JSONP解决跨域问题

    JSONP(JSON with Padding)是一种跨域数据交互协议,它利用了`&lt;script&gt;`标签可以跨域请求资源的特性,为了解决JavaScript在浏览器端由于同源策略限制无法直接访问不同源的HTTP请求的问题。在本场景中,前端使用...

    JSONP跨域实现百度搜索功能(v1.0.0)

    JSONP(JSON with Padding)是一种常见的解决浏览器同源策略限制的跨域数据交互方式,尤其在JavaScript中广泛使用。在本项目"JSONP跨域实现百度搜索功能(v1.0.0)"中,我们将深入探讨如何利用JSONP技术来实现在网页上...

    Ajax跨域请求解决方案-JSONP

    然而,Ajax技术在实现动态网页交互时常常需要跨越这个限制,这时就引入了JSONP(JSON with Padding)作为跨域请求的一种解决方案。本文将详细介绍JSONP的工作原理以及如何在ASP.NET网站开发中应用JSONP解决Ajax跨域...

Global site tag (gtag.js) - Google Analytics