JSONP怎样实现跨域啊? 谁给举个小例子啊?使用JSONP实现跨域的那种? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 原理很简单:1.当你需要的跨域时候,创建一个script标签,加到head中,设置这个script的src值为其它域的url,最好加上一个随机参数,以防WEB缓存机制。如生成这样的一个标签: <script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script> 当然这应该通过document.createElement来完成。2.那个js.php的内容呢,其实就是一个JS文件,当然内容是根据需要可以动态生成的,但你应该制定好一个接口 http://www.css88.com/archives/2372这个DEMO够简单 <html><head id="head"> <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <title>无标题文档</title> <style type="text/css"> body,html { overflow:hidden; height:100%; } </style><script language="javascript" type="text/javascript"> //这个是跨域JS的接口函数 function Run(data){ alert(data); } function Call(){ var t=new Date(); //时间参数,防缓存 var value=document.getElementById("content").value; var dom=document.createElement("script"); //创建dom dom.type="text/javascript"; //设置URL为跨域的JS地址,这个地址生成的JS,应该跟据约定调用Run dom.src="http://localhost/web/js.asp?content="+value+"&t="+t.getTime(); //加到head中,注意,本例中的head标签有ID,而且也是head,当然你可以自己指定 document.getElementById("head").appendChild(dom); }</script></head><body> <input id="content" type="text" value="Hello" /><input type="button" value="跨域调用" onclick="Call();" /></body></html>这是js.asp的内容,这么简单,不明白我也不解释了<%dim contentcontent=request("content")%>var content="<% =content %>";Run(content); 不好意思,还是有点不太明白。1.必须要使用document.createElement吗?直接使用<script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script> 直接写在HTMl文件里面不行吗?2.src="http://abc.com/js.php?t=1234与src="http://abc.com/js.js?t=1234"有什么不同?假设JS文件与PHP文件的输出内容相同。 使用document.createElement的目的是可以让你在页面运行的时候,动态的跨域调用,想什么通过什么事件来触发都可以当然你要直接写<script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script>这样的HTML代码也行,但就只能这么一次过了,不能动态至于src所指定的网址,是什么东西都可以,asp,jsp,php甚至是html等等都可以,但它们最终输出的内容都要是可以运行的javascript代码,而不是HTML代码 原理有点明白了,但是没有看出在什么情况下需要使用这种方式。script引入的任何域的文件都被认为是同域的。JSONP的原理就是利用了这个特性吧?上面的例子的目的是什么? 你要是去分析那个所谓的JSONP的源代码,其实到头来关键的地方还是script标签知道原理了,想怎么弄都行,我不喜欢依赖框架script的方法,是加载一个资源,这个资源只要浏览器能访问到就行,不管是什么各种各样的网址。加载完成以后,就把它当做代码来执行。只是这种方式只能用GET方式传参数。Ajax的httpRequest因为安全限制是不允许跨域访问的,所以很多人试图用httpRequest来实现,再牛B的代码也根本行不通以上例子,只为说明原理 目的是为了数据形式是json等js认识的 如何改写document.execCommand("BackColor",false,"red") 兼容火狐 javascript 获取临近节点 数组的input数据如何ajax传递 不管点确定还是取消,都执行了submit 谁能将携程网的日历下载来下 http://hotels.ctrip.com/hotel/31.html 屏蔽框架里显示内容 给网页关键字加链接 自定义网页关键字连接代码? 怎么设计使下来菜单使前台页面的部分发生变化? 如何获取任意一个单元格的坐标呀(即TD的Left和Top)??? 请问各位大虾一个难题??????? 如何防止窗口最小化 正则表达式的问题!
1.当你需要的跨域时候,创建一个script标签,加到head中,设置这个script的src值为其它域的url,最好加上一个随机参数,以防WEB缓存机制。如生成这样的一个标签: <script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script> 当然这应该通过document.createElement来完成。
2.那个js.php的内容呢,其实就是一个JS文件,当然内容是根据需要可以动态生成的,但你应该制定好一个接口
<head id="head">
<meta http-equiv="Content-Type"
content="text/html; charset=gb2312" />
<title>无标题文档</title>
<style type="text/css">
body,html
{
overflow:hidden;
height:100%;
}
</style>
<script language="javascript" type="text/javascript">
//这个是跨域JS的接口函数
function Run(data){
alert(data);
}
function Call(){
var t=new Date(); //时间参数,防缓存
var value=document.getElementById("content").value;
var dom=document.createElement("script"); //创建dom
dom.type="text/javascript";
//设置URL为跨域的JS地址,这个地址生成的JS,应该跟据约定调用Run
dom.src="http://localhost/web/js.asp?content="+value+"&t="+t.getTime();
//加到head中,注意,本例中的head标签有ID,而且也是head,当然你可以自己指定
document.getElementById("head").appendChild(dom);
}
</script>
</head>
<body>
<input id="content" type="text" value="Hello" />
<input type="button" value="跨域调用" onclick="Call();" />
</body>
</html>这是js.asp的内容,这么简单,不明白我也不解释了
<%
dim content
content=request("content")
%>
var content="<% =content %>";
Run(content);
不好意思,还是有点不太明白。
1.必须要使用document.createElement吗?直接使用
<script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script>
直接写在HTMl文件里面不行吗?
2.src="http://abc.com/js.php?t=1234与src="http://abc.com/js.js?t=1234"
有什么不同?
假设JS文件与PHP文件的输出内容相同。
当然你要直接写<script type="text/javascript" src="http://abc.com/js.php?t=1234" ></script>这样的HTML代码也行,但就只能这么一次过了,不能动态至于src所指定的网址,是什么东西都可以,asp,jsp,php甚至是html等等都可以,但它们最终输出的内容都要是可以运行的javascript代码,而不是HTML代码
script引入的任何域的文件都被认为是同域的。
JSONP的原理就是利用了这个特性吧?
上面的例子的目的是什么?
知道原理了,想怎么弄都行,我不喜欢依赖框架script的方法,是加载一个资源,这个资源只要浏览器能访问到就行,不管是什么各种各样的网址。加载完成以后,就把它当做代码来执行。只是这种方式只能用GET方式传参数。Ajax的httpRequest因为安全限制是不允许跨域访问的,所以很多人试图用httpRequest来实现,再牛B的代码也根本行不通以上例子,只为说明原理
形式是json等js认识的