AJAX javascript的跨域访问执行

2019-09-14 07:20:29王旭


  那么现在来看看我们的做法!

 

优雅地突破子域名的限制

  我们突破子域名限制的关键还是在于iframe。

  iframe是的好东西,我们能够跨过子域名来访问iframe里的页面对象,例如 window和DOM结构,包括调用JavaScript(通过window对象)——我们将内外页面的 document.domain设为相同就可以了。然后在不同子域名的页面发起不同的请求,把结果通过JavaScript进行传递即可。唯一需要的也仅 仅是一个简单的静态页面作为Proxy而已。

  我们现在就来开始编写一个原形,虽然简单,但是可以说明问题。

  首先,我们先来编写一个静态页面,作为放在iframe里的Proxy,如下:

SubDomainProxy.html 

<html xmlns=“http://www.w3.org/1999/xhtml” > 
<head> 
    <title>Untitled Page</title> 
    <script type=“text/javascript” language=“javascript”> 
        document.domain = “test.com“;        function sendRequest(method, url) 
        { 
            var request = new XMLHttpRequest(); 
            request.open(method, url); 
            request.send(null); 
        } 
    </script> 
</head> 
<body> 
</body> 
</html> 


 

  然后我们再编写我们的主页面:


http://www.test.com/Default.html 


<html xmlns=“http://www.w3.org/1999/xhtml” > 
<head runat=“server”>  
    <title>Untitled Page</title>  
    <script type=“text/javascript” language=“javascript”>  
        document.domain = “test.com“;        function simpleRequest()  
        {  
            var request = new XMLHttpRequest();  
            request.open(”POST“, “Script.ashx“);  
            request.send(null);