由于武林網(wǎng)近日首頁(yè)突然出現(xiàn)了腳本錯(cuò)誤提示,顯示沒(méi)有權(quán)限。我經(jīng)過(guò)很漫長(zhǎng)的查找,也沒(méi)有能夠找到問(wèn)題所在。最好在搜索引擎的幫助下,找到了下面這篇文章,終于解決了問(wèn)題。原來(lái)的確是ajax跨域操作問(wèn)題,我將代碼中的紅色文字去除后,留下相對(duì)路徑,發(fā)現(xiàn)問(wèn)題解決。
只是還有一個(gè)疑問(wèn),Ajax難道只能用相對(duì)路徑來(lái)判斷是否同域嗎?本來(lái)我站就是www.survivalescaperooms.com,但是對(duì)www.survivalescaperooms.com的操作竟然也成了跨域操作,無(wú)法理解。
在程序里有
function CheckLogin(){
var taget_obj = document.getElementById('_loginform');
myajax = new DedeAjax(taget_obj,false,false,"","","");
myajax.SendGet2("http://www.survivalescaperooms.com/member/loginsta.php");
DedeXHTTP = null;
}
本文出自:http://www.mrxcool.com/articles.asp?id=210,原文如下:
前兩天給一客戶(hù)做網(wǎng)站,由于給客戶(hù)的空間不支持JMAIL發(fā)郵件,所以就想說(shuō)在自己公司的空間里放程序,在客戶(hù)那用AJAX程序獲取信息。于是馬上動(dòng)工,由于有了前面的經(jīng)驗(yàn)了,所以這個(gè)“簡(jiǎn)單”的腳本寫(xiě)起來(lái)也很順手很快就完成了,在本機(jī)上調(diào)試也一切正常。然后就傳到網(wǎng)站上去,也沒(méi)怎么細(xì)想就沒(méi)有在服務(wù)器上測(cè)試了。
今天收到客戶(hù)的信息,說(shuō)那個(gè)程序沒(méi)辦法用,出問(wèn)題了。我馬上去看了一下,看到出現(xiàn)了腳本錯(cuò)誤的提示,一看,說(shuō)是沒(méi)有權(quán)限。怎么會(huì)沒(méi)有權(quán)限呢?想不通,也不知道。
看來(lái)只好百度一下啦,一搜,才知道原來(lái)這個(gè)是AJAX經(jīng)典的跨域操作問(wèn)題,出于安全起見(jiàn),AJAX從一“出道”就沒(méi)有辦法執(zhí)行跨域操作。看完之后我那個(gè)心涼呀,那該怎么辦呢?總不能讓程序不能用吧。
繼續(xù)百度+GG
到最后還是沒(méi)有搜到很好的解決方法,但有一種方法是比較好的就是通過(guò)本域程序來(lái)獲取遠(yuǎn)域的內(nèi)容,再由AJAX來(lái)獲取本域程序的返回信息。
可能說(shuō)得太饒舌了,我說(shuō)明一下吧。就是在當(dāng)前網(wǎng)站上用服務(wù)器動(dòng)態(tài)程序獲取遠(yuǎn)程的內(nèi)容,其實(shí)也是要用了采集常用到的Microsoft.XMLHTTP組件,基本上也是和AJAX同理的,只不過(guò)是服務(wù)器端的程序支持跨域操作,而客戶(hù)端的AJAX腳本不支持。
但是如果當(dāng)前的網(wǎng)站空間不支持此組件那就沒(méi)辦法了。雖然現(xiàn)在絕大部分的空間都是支持的,但也有可能部分不支持呀,更有甚者你用的還是靜態(tài)的空間,那這個(gè)暫時(shí)也沒(méi)有任何辦法可以解決。
新聞熱點(diǎn)
疑難解答
圖片精選