求助:JavaScript 跨域访问 跨域可以做get提交,不能做post提交 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.iyi.cn/hily/archives/2006/11/overdomaindatafetch.html1. 在本地服务器上新建一页面。test.html:<html><head><title> Over-Domain Data Fetching Test Page</title><script type="text/javascript">var lastScript;var h=document.getElementsByTagName("head")[0];</code>function loadScript(url){var f=document.createElement("script");var d=new Date().getTime();f.type="text/javascript";f.id=d;f.src=url+'?'+d;h.appendChild(f);if(lastScript&&g(lastScript))g(lastScript).parentNode.removeChild(g(lastScript));lastScript=d;}function g(x){return document.getElementById(x)};</script></head><body><button onclick="loadScript('http://localhost/alert.js')">Test Alert</button><br /><button onclick="loadScript('http://localhost/info.js')">Get My Info</button><br />My Name: <input id="myname" type="text" value="" /><br />My Blog: <input id="myblog" type="text" value="" /></body></html>解释两个关键点:1. lastScript用于存放上次建立的script节点的ID,在下次要再新建script节点时,要删除上次建立的节点,以免加载的脚本越来越多,占用过多的内存。2. url后面加了一个数值d是为了防止浏览器缓存脚本数据,在本例中可以不加,但是如果脚本是由服务器动态生成的,那最好加上。然后再建立两个javascript脚本用于测试:alert.js:alert('You can see me!');info.js:g('myname').value='Hily Jiang';g('myblog').value='http://hily.iyi.cn/';好了,把它们放在本地服务器的根目录下,敲入http://127.0.0.1/test.html,这样它和localhost就不在同一个域内了。点击“Test Alert”,应该会弹出对话框显示You can see me!。点击“Get My Info”,应该会在文本框中显示我的信息。(以上测试页在IE 6.0和FireFox1 .5.0下测试通过。) 楼上的就是给出的标准的get提交的跨越访问方式。 所以你只能采用代理或者其他方法,因为允许跨域post方法,这是极为不安全的。 高手来吧,代码很简单但问题很严重 列表内的图片如何和显示的图片对应 js:取出所有文本 麻烦哪位高手帮我解密这个js啊?弄了一整晚了!!!谢谢了~~~ js中如何将一个变量的值得设置到:document.getElementByIf("a").innerHTML="var"这里的var是一个变量我想显示的就是这个变量的值 用<a>执行js的问题 帮下忙啊!回传后脚本错误 为什么用document.execCommand("Paste")不能粘贴? 关于JS里得到一个ASP的变量的问题 ? 如何使form无法提交? 事件问题 怎样使网页上部和下部不留有空闲区域,紧顶着浏览器客户区显示
test.html:
<html>
<head>
<title> Over-Domain Data Fetching Test Page</title>
<script type="text/javascript">
var lastScript;
var h=document.getElementsByTagName("head")[0];</code>function loadScript(url){
var f=document.createElement("script");
var d=new Date().getTime();
f.type="text/javascript";
f.id=d;
f.src=url+'?'+d;
h.appendChild(f);
if(lastScript&&g(lastScript))g(lastScript).parentNode.removeChild(g(lastScript));
lastScript=d;
}function g(x){return document.getElementById(x)};
</script>
</head><body>
<button onclick="loadScript('http://localhost/alert.js')">Test Alert</button><br />
<button onclick="loadScript('http://localhost/info.js')">Get My Info</button><br />
My Name: <input id="myname" type="text" value="" /><br />
My Blog: <input id="myblog" type="text" value="" />
</body>
</html>
解释两个关键点:
1. lastScript用于存放上次建立的script节点的ID,在下次要再新建script节点时,要删除上次建立的节点,以免加载的脚本越来越多,占用过多的内存。
2. url后面加了一个数值d是为了防止浏览器缓存脚本数据,在本例中可以不加,但是如果脚本是由服务器动态生成的,那最好加上。
然后再建立两个javascript脚本用于测试:
alert.js:
alert('You can see me!');
info.js:
g('myname').value='Hily Jiang';
g('myblog').value='http://hily.iyi.cn/';
好了,把它们放在本地服务器的根目录下,敲入http://127.0.0.1/test.html,这样它和localhost就不在同一个域内了。
点击“Test Alert”,应该会弹出对话框显示You can see me!。
点击“Get My Info”,应该会在文本框中显示我的信息。
(以上测试页在IE 6.0和FireFox1 .5.0下测试通过。)