跨域可以做get提交,不能做post提交

解决方案 »

  1.   

    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下测试通过。) 
      

  2.   

    楼上的就是给出的标准的get提交的跨越访问方式。
      

  3.   

    所以你只能采用代理或者其他方法,因为允许跨域post方法,这是极为不安全的。