濮阳杆衣贸易有限公司

主頁 > 知識庫 > 活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)

活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)

熱門標(biāo)簽:越南河內(nèi)地圖標(biāo)注 機器人電銷騙局揭秘 地圖標(biāo)注項目怎么樣 ai機器人電銷資源 個人怎樣在百度地圖標(biāo)注地名 硅語電話機器人公司 騰訊地圖標(biāo)注位置能用多久 云呼外撥網(wǎng)絡(luò)電話系統(tǒng) 超級大富翁地圖標(biāo)注

學(xué)習(xí)AJAX其實有個很重要的應(yīng)用,就是為了執(zhí)行另外幾個站點的ASP,返回結(jié)果。

真正用起來,發(fā)現(xiàn)2個問題,一向做DELPHI,接觸ASP不多的我,的確問題大堆。

第一個問題:

VBS的變量傳遞給JS。。。通過學(xué)習(xí)發(fā)現(xiàn)很簡單的。。。

先看下我大體實現(xiàn)方法:

%
dim sSrv1Link
sSrv1Link = "http://www.XXX.org/test1.asp?U=TESTUSERM=111E=222"
%>
script type="text/javascript">
function synSvrData(str)
{
var xmlhttp;
if (str.length==0)
{
document.getElementById("txtHint").innerHTML="";
return;
}
//創(chuàng)建對象
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//處理ONREADYSTATECHANGE事件,我們這里只相應(yīng)服務(wù)器反饋成功的
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4  xmlhttp.status==200)
{
document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET",str,true);
xmlhttp.send();
}
/script> 

上面這段代碼的意思就是用AJAX實現(xiàn)訪問一個ASP,并返回結(jié)果。

script type="text/javascript">
var jsSvr='%=sSrv1Link%>'; 
synSvrData(jsSvr)
/script> 

看到?jīng)]?這個才是關(guān)鍵:

var jsSvr='%=sSrv1Link%>'; 

js使用VBS變量,為什么要這樣?因為加密串那些都是VBS生成的。

本地測試OK,現(xiàn)在把訪問文件換成其他服務(wù)器上的。。。

sSrv1Link = "http://www.XXX2.org/test1.asp?U=TESTUSERM=111E=222"
意思就是跨域!??!

這時候問題來了。。。代碼執(zhí)行后無返回,后來發(fā)現(xiàn)不是不返回,是XXX2服務(wù)器不響應(yīng)!

發(fā)現(xiàn)問題出現(xiàn)在 test1.asp 這個文件上!??!對!你沒看錯!

跨域請求,顧名思義,就是一個站點中的資源去訪問另外一個不同域名站點上的資源。

以下兩端摘抄:

隨著 Web2.0 和 SNS 的興起,Web 應(yīng)用對跨域訪問的需求也越來越多,但是,在腳本中進行跨域請求是受安全性限制的,Web 開發(fā)人員迫切需要提供一種更安全、方便的跨域請求方式來融合(Mashup)自己的 Web 應(yīng)用。這樣做的一個好處就是可以將請求分?jǐn)偟讲煌姆?wù)器,減輕單個服務(wù)器壓力以提高響應(yīng)速度;另外一個好處是可以將不同的業(yè)務(wù)邏輯分布到不同的服務(wù)器上以降低負(fù)載。

值得慶幸的是,跨域請求的標(biāo)準(zhǔn)已經(jīng)出臺,主流瀏覽器也已經(jīng)實現(xiàn)了這一標(biāo)準(zhǔn)。W3C 工作組中的 Web Applications Working Group(Web 應(yīng)用工作組)發(fā)布了一個 Cross-Origin Resource Sharing(跨域資源共享,該規(guī)范地址:http://www.w3.org/TR/access-control/和http://dev.w3.org/2006/waf/access-control/) 推薦規(guī)范來解決跨域請求的問題。該規(guī)范提供了一種更安全的跨域數(shù)據(jù)交換方法。具體規(guī)范的介紹可以訪問上面提供的網(wǎng)站地址。值得注意的是:該規(guī)范只能應(yīng)用在類似 XMLHttprequest 這樣的 API 容器內(nèi)。IE8、Firefox 3.5 及其以后的版本、Chrome瀏覽器、Safari 4 等已經(jīng)實現(xiàn)了 Cross-Origin Resource Sharing 規(guī)范,已經(jīng)可以進行跨域請求了。Cross-Origin Resource Sharing 的工作方式是通過添加 HTTP 頭的方法來判斷哪些資源允許 Web 瀏覽器訪問該域名下的信息。然而,對于那些 HTTP 請求導(dǎo)致用戶數(shù)據(jù)產(chǎn)生副作用的請求方法(特別是對于除了GET、某些 MIME 類型的 POST 之外的 HTTP方法),該規(guī)范要求瀏覽器對請求進行“預(yù)先驗”,通過發(fā)送 HTTP 的 OPTIONS 請求頭詢問服務(wù)器有哪些支持的方法,在征得服務(wù)器的同意后,再使用實際的 HTTP 請求方法發(fā)送實際的請求。服務(wù)器也可以通知客戶端是否需要將驗證信息(如 Cookie 和 HTTP Authentication 數(shù)據(jù))隨同請求一起發(fā)送。

看了這么多,其實實現(xiàn)一句話:就是添加HTTP頭!

先看看我們做測試用的原來的 test1.asp

%
sUser=request.QueryString("U") 
response.write("XXX.org: "  sUser)
%> 

下面添加跨域訪問:

%
response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"
sUser=request.QueryString("U") 
response.write("XXX2.org: "  sUser)
%> 

response.AddHeader "Access-Control-Allow-Origin", "http://www.XXX2.org"對了,就這么一句話,跨域完成了,你再測試下,是不是OK了?

您可能感興趣的文章:
  • 利用iframe實現(xiàn)ajax跨域通信的實現(xiàn)原理(圖解)
  • 完美解決AJAX跨域問題
  • jquery ajax跨域解決方法(json方式)
  • jquery的ajax和getJson跨域獲取json數(shù)據(jù)的實現(xiàn)方法
  • ajax跨域請求js拒絕訪問的解決方法
  • jquery+ajax實現(xiàn)跨域請求的方法
  • 服務(wù)端配置實現(xiàn)AJAX跨域請求
  • 解決ajax跨域請求數(shù)據(jù)cookie丟失問題
  • Ajax實現(xiàn)跨域訪問的三種方法

標(biāo)簽:林芝 海南 鄭州 內(nèi)蒙古 邢臺 舟山 洛陽 遼源

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)》,本文關(guān)鍵詞  活到老,學(xué)到老,學(xué)習(xí),AJAX,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)》相關(guān)的同類信息!
  • 本頁收集關(guān)于活到老學(xué)到老學(xué)習(xí)AJAX跨域(三)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    吉林省| 台南县| 巢湖市| 辽阳县| 温宿县| 奎屯市| 大余县| 郁南县| 和林格尔县| 石泉县| 周口市| 叶城县| 高雄市| 大关县| 鸡东县| 马龙县| 出国| 伊吾县| 海门市| 崇文区| 象州县| 金坛市| 包头市| 芦溪县| 丹凤县| 新绛县| 安阳县| 建瓯市| 长子县| 固阳县| 巴马| 通海县| 文水县| 瓦房店市| 舞阳县| 和田市| 安多县| 乌兰县| 寻乌县| 垫江县| 白银市|