跨域传递

//由于浏览器的同源策略原则,所以无法跨域传值,但可以用js原理来实现
方法一:用jquery中的jsonp
请求文件:
<!DOCTYPE>
<html>
<head>
<title>lin3615</title>
<script src="jquery-1.8.3.min.js" type="text/javascript"></script>
<script>
	$(document).ready(function(){
		$.ajax({
			type:‘get‘,
			url:‘http://www.example.com/ok.php?loginuser=lin3615&loginpass=123456‘,
			dataType:‘jsonp‘,
			jsonp:‘jsonpcallback‘,
			jsonpCallback:‘yes‘,
			success: function(data)
			{
				alert("user:"+data.user+",pass:"+data.pass);
			},
			error:function(){
				alert("eeee");
			}
		});
	});
</script>

</head>
<body>
<h1>xx</h1>
</body>
<html>
// ok.php 文件
$arr = array(
							‘user‘=>$_GET[‘loginuser‘],
							‘pass‘=>$_GET[‘loginpass‘]
						);
echo $_GET[‘jsonpcallback‘].‘(‘.json_encode($arr).‘)‘;

//方法二:
<!DOCTYPE>
<html>
<head>
<title>lin3615</title>
<script>
	var flightHandler = function(data)
	{
		alert(data.price+","+data.tickets);
	}
	var url = "http://www.example.com/ok.php?a=code";
	var script = document.createElement("script");
	script.setAttribute(‘src‘, url);
	document.getElementsByTagName(‘head‘)[0].appendChild(script);
</script>

</head>
<body>
<h1>xx</h1>
</body>
<html>
// ok.php 文件

if($_GET[‘a‘] == ‘codex‘)
{
	echo ‘flightHandler({
		"price":100,
		"tickets":22
	})‘;
}else
{
	echo ‘flightHandler({
		"price":1,
		"tickets":2
	})‘;
}

  

时间: 2024-12-17 07:42:51

跨域传递的相关文章

javascript跨域传递消息总结

参考文档,下面有转载: http://www.cnblogs.com/loveis715/p/4592246.html [跨源的各种方法总结] http://kb.cnblogs.com/page/139725/    [jsonp的介绍] [jsonp的自己备注] 跨域访问一般都要受到同源政策限制,但是Web页面上调用js文件时则不受是否跨域的影响(不仅如此,我们还发现凡是拥有”src”这个属性的标签都拥有跨域的能力,比如<script>.<img>.<iframe>

最最基层的ajax交互代码jquery+java之间的json跨域传递以及java的json代码返回

首先导入jar包 上面的jar包主要是用来将map或list数据转换成json字符串,传递到前台使用. 静态页面的代码:2.html 1 <!DOCTYPE html> 2 <html> 3 <head> 4 <meta charset="utf-8"> 5 <title>ajax</title> 6 <script type="text/javascript" src="js/

使用postMessage在不同iframe间跨域传递消息

iframe同源策略 如果父窗口访问一个不同域名的子窗口就会报错: Uncaught DOMException: Blocked a frame with origin "xxx" from accessing a cross-origin frame. 如何解决呢?一个简单的思路就是,既然是因为不同源,那么再建一个同源的窗口不久可以了吗?一个同源的子窗口能读取父窗口无法访问的子窗口的内容,然后通过postMessage传递给父窗口就可以了. //http://app1.test.lo

html5跨域数据传递(postMessage)

在html5中有个支持跨域传递的方法postMessage,可是实现iframe之间的数据传递! 代码如下:数据发送页面 <!DOCTYPE HTML> <html lang="en"> <head> <meta charset="utf-8"/> <meta name="copyright" content=""/> <meta name="keyw

说一说javascript跨域和jsonp

同源策略 在浏览器的安全策略中“同源策略”非常如雷贯耳,说的是协议.域名.端口相同则视为同源,域名也可换成IP地址,不同源的页面脚本不能获取对方的数据. 要是想使用XMLHttpRequest或者常规的AJAX请求获取另一个站点的数据,浏览器会告诉你“XXXX is not allowed by Access-Control-Allow-Orign”. 因为同源策略的存在,防止了跨域访问的安全问题,但同时也损失了方便获取资源的便利. 跨域的src属性 世事又非绝对,浏览器还是允许几个元素跨域访问

跨域请求资源

什么是同源策略? 同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性.也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同.这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作.这个浏览器策略很旧,从 Netscape Navigator 2.0 版本开始就存在. URL                                 说明 是否允许通信 http://www.a.com/a.js http://www.a.com/b.js            

浅谈WEB跨域的实现(前端向)

同源策略/SOP(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS.CSFR等攻击(可以参考我的这篇文章). SOP要求两个通讯地址的协议.域名.端口号必须相同,否则两个地址的通讯将被浏览器视为不安全的,并被block下来.比如“http页面”和“https页面”属于不同协议:“qq.com”.“www.qq.com”.“a.qq.com”都属于不同域名(或主机):“a.com”和“a.com:8000”属于不同端口

JavaScript跨域方法学习总结

JavaScript跨域: URL 说明 是否允许通信 http://www.a.com/a.js  http://www.a.com/b.js 同一域名下 允许 http://www.a.com/lab/a.js  http://www.a.com/script/b.js 同一域名下不同文件夹 允许 http://www.a.com:8000/a.js  http://www.a.com/b.js 同一域名,不同端口 不允许 http://www.a.com/a.js  https://www

【HAVENT原创】前端跨域一站式登录实现 ( iframe + window.name )

从网上搜集了一些资料,window.name 传输技术,关于window.name的这样一个特性:name 值在不同的页面(甚至不同域名)加载后依旧存在,并且可以支持非常长的 name 值(2MB).换句话说,name属性不会因为页面的url变化而变化,这就给跨域提供了机会.原本是 Thomas Frank 用于解决 cookie 的一些劣势(每个域名 4 x 20 Kb 的限制.数据只能是字符串.设置和获取 cookie 语法的复杂等等)而发明的(详细见原文:<Session variable