1,對於域名a.a.com和域名http://www.a.com/的兩個頁面javascript
若是要在a.a.com使用AJAX訪問http://www.a.com/的時候js 會提示"沒有權限"php
這樣的錯誤很明顯,跨域了,在js當中跨域,怎麼解決呢?html
發如今頁面用Script來引用http://www.google.com/js/js.js 時卻不會報錯,因此就想了個轉化的辦法java
也是在網上查到的,人家稱之爲AJAJ技術,其實也是AJAX的一部分吧jquery
既然我要用script標籤來引用外部js,那麼確定得有個<script>申明吧ajax
<head>json
<script src='' language='"javascript" id="get"></script>跨域
</head>cookie
好了,如今就能夠在js中動態連接外部js了、app
button.click=function(){
var doc=document.getElementById("get");
doc.src='http://www.google.com/js/js.js';
//若是'http://www.google.com/js/js.js'的內容是
----------------------------------------
var p='你色嗎';
----------------------------------------
那麼我就能夠這樣寫了
//這裏注意點,不是IF
(doc.readStatus==200)
alert(p);
整個源碼示例:
get.php的代碼就是
<? echo '你色嗎?' ?>
點擊按鈕,輸出 「你色嗎?」
就這麼簡單,看起來比那個Ajax的簡單吧
這個是Ajax執行權限的跨域,另外一個,cookie的跨域,這個很簡單了
2,cookie的跨域
var main=".main.com"; //記着必定要加個「.」
function setCookie(name,value,day)
{
var now=new Date();var ms;
if(day>0){
now.setTime(now.getTime()+(day*24*3600*1000));
}
document.cookie=name+"="+escape(value)+";expires="+now.toGMTString()+";path=/;domain="+main;
}
附上php跨域示例
3,Forms驗證下的一級域名和二級域名的登陸同步
簡要的說下
<authentication mode="Forms" >
<forms defaultUrl="default.aspx" loginUrl="login.aspx" name="_aq" timeout="60" domain=".xs.com" ></forms>
</authentication>
注意的幾項 name domain 這兩個選項在父子域名中必須相同
另外登陸代碼
FormsAuthenticationTicket tic = new FormsAuthenticationTicket(uname, true, gettimeByvalue(time));
string entic = FormsAuthentication.Encrypt(tic);
HttpCookie h = new HttpCookie(FormsAuthentication.FormsCookieName, entic);
h.Expires = d;
h.Domain = FormsAuthentication.CookieDomain;
h.HttpOnly = true;
HttpContext.Current.Response.Cookies.Add(h);
注意加紅部分
註銷部分
Context.Response.Cookies.Remove(FormsAuthentication.FormsCookieName);
FormsAuthentication.SignOut();
Response.Redirect("/");
4,JSONP方式
這裏補上浪子兄的建議,使用JSONP突破跨域瓶頸
理論上就是我上面說的方法,只是一些js框架都封裝起來了
就已jquery來作示例
ajax方法:
show.aspx頁面:
getJSON方法:
這個show.aspx與上面差很少同樣,把jsoncallback換成callback就好了
另外不知有人有不一樣域名跨域的解決方案,但願可以一塊兒討論...