松鼠的博客

导航

可跨域的不需要XMLHTTP控件的 "AJAX"

原理:服务器调用客户端的脚本函数并动态传递给客户端新的数据。其实应该叫脚本注入而不是Ajax了,不过可以克服Ajax的不可跨域的大毛病

<html>  
<head>  
    
<title>"Ajax" test</title>  
    
<script runat="server" language="c#">  
        
void Page_Load(object sender, EventArgs e)  
        
{  
            string n
=Request.QueryString["n"];  
              
            
if(n!=null)  
            
{  
                Response.Write(string.Format(
"onSucceed('hello {0}');", n));  
                Response.End();  
            }
  
        }
  
    
</script>  
    
<script type="text/javascript">  
        
function invokeServer(url)   
{   
             
var script_old=document.getElementById('temp_script');  
             
if(script_old!=null && document.all)  
             
{  
                script_old.src 
= url;   
                
return;  
             }
  
               
            
var head=document.documentElement.firstChild;   
            
var script=document.createElement('script');   
            script.id
='temp_script';   
            script.type 
= 'text/javascript';   
            script.src 
= url;   
               
               
            
if(script_old!=null)  
               head.replaceChild(script,script_old);   
            
else   
               head.appendChild(script);   
}
           
         
function onSucceed(result)  
         
{  
           alert(result);  
         }
  
          
        
function button_click()  
        
{  
            invokeServer('index.aspx
?n='+document.getElementById('name').value);  
        }
  
          
    
</script>  
</head>  
<body>  

<input type="text" id="name" /><input type="button" value="invoke" onclick="button_click()" />  

</body>  
</html>

posted on 2007-11-28 18:17  Xproer-松鼠  阅读(205)  评论(0)    收藏  举报