亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > ASP > 正文

如何解決AJAX中跨域訪問出現'沒有權限'的錯誤

2024-05-04 11:07:29
字體:
來源:轉載
供稿:網友
很多人在使用AJAX調用別人站點內容的時候,JS會提示"沒有權限"錯誤,這是XMLHTTP組件的限制-安全起見
禁止訪問非同域的網站,下面一個例子來訪問http://www.google.cn,

<script type="text/javascript">
function createobj() {
if (window.ActiveXObject) {
         return new ActiveXObject("Microsoft.XMLHTTP");
     }
     else if (window.XMLHttpRequest) {
         return new XMLHttpRequest();
     }
}

function getWebPage(url) {
  var oBao=createobj();
  var my_url=url
  oBao.open('get',my_url,false);
  oBao.onreadystatechange=function(){
       if(oBao.readyState==4){
            if(oBao.status==200){
              var returnStr=oBao.responseText;
              document.write(returnStr);
            }else{
              document.write("未找到您輸入的地址或服務器505錯誤!");
            }
       }
  }
  oBao.send(null);
}
getWebPage('http://www.google.cn');
</script>

  保存這段代碼到test.html,在本地直接用IE打開沒問題,但將該段代碼上傳到服務器后,問題出現了--JS提示"沒有權限"錯誤!!!這該如何解決呢?
  下面思考一下:既然不能訪問非同域的,只能訪問同域的地址了,同域的動態文件怎么獲取非同域網頁內容呢?我們還是想到的AJAX,只不過這個AJAX是在服務器端執行.
   大體思路是這樣的:首先將URL用AJAX提交給自己站內的文件,例如getPage.asp---在getPage.asp再次通過服務器XMLHTTP來訪問提交來的URL---將獲取的內容返回給提交URL的頁----顯示內容
  下面開始組織代碼,首先是test.html文件

<script type="text/javascript">
function createobj() {
if (window.ActiveXObject) {
         return new ActiveXObject("Microsoft.XMLHTTP");
     }
     else if (window.XMLHttpRequest) {
         return new XMLHttpRequest();
     }
}

function getWebPage(url) {
  var oBao=createobj();
  var my_url="getpage.asp?url="+escape(url);
  oBao.open('get',my_url,false);
  oBao.onreadystatechange=function(){
       if(oBao.readyState==4){
            if(oBao.status==200){
              var returnStr=oBao.responseText;
              document.write(returnStr);
            }else{
              document.write("未找到您輸入的地址或服務器505錯誤!");
            }
       }
  }
  oBao.send(null);
}
getWebPage('http://www.google.cn');
</script>

再就是getpage.asp文件(注意:要以UTF-8格式保存本文件,防止亂碼),如下:


<%
response.charset="UTF-8"
reg="/<meta.+ charset= {0,}([^/"" />//]*).+//{0,1}/>"
'函數名:GetResStr
'作用:獲取指定URL的HTML代碼
'參數:URL-要獲取的URL
function GetResStr(URL)
err.clear
dim ResBody,ResStr,PageCode,ReturnStr
Set Http=createobject("MiCROSOFT.XMLHTTP")
Http.open "GET",URL,False
Http.Send()
If Http.Readystate =4 Then
  If Http.status=200 Then
    ResStr=http.responseText
    ResBody=http.responseBody
    PageCode=GetCode(ResStr,reg)
    ReturnStr=BytesToBstr(http.responseBody,PageCode)
    GetResStr=ReturnStr
  End If
End If
End Function

'函數名:BytesToBstr
'作用:轉換二進制數據為字符
'參數:Body-二進制數據,Cset-文本編碼方式
Function BytesToBstr(Body,Cset)
  Dim Objstream
  Set Objstream = CreateObject("adodb.stream")
  objstream.Type = 1
  objstream.Mode =3
  objstream.Open
  objstream.Write body
  objstream.Position = 0
  objstream.Type = 2
  objstream.Charset =Cset
  BytesToBstr = objstream.ReadText
  objstream.Close
  set objstream = nothing
End Function

'函數名:GetCode
'作用:轉換二進制為字符
'參數:str-待查詢字符串,regstr-正則表達式
Function GetCode(str,regstr)
Dim Reg,serStr
set Reg= new RegExp
Reg.IgnoreCase = True
Reg.MultiLine = True
Reg.Pattern =regstr
if Reg.test(str) then '若查詢到匹配項
   Set Cols = Reg.Execute(str)
   serStr=Cols(0).SubMatches(0) '使用匹配到的第一個匹配項
else '否則給個默認值gb2312,有點省懶法,如果頁面沒給出編碼格式,想知道確實有點麻煩
   serStr="gb2312"
end if
GetCode=serStr
end function

dim url:url=request.querystring("url")
response.write GetResStr(URL)
%>

  代碼組織完畢,實驗下,成功提取http://www.google.cn的內容!!!!!這樣就可以解決"沒有權限"的問題了。
  其實,單純一個getpage.asp一樣能獲取,不過不能像js那樣動態的處理DOM。
  還有一個問題,如果你用第一種方法訪問http://www.baidu.com會出現亂碼,因為baidu編碼為GB2312,
而XMLHTTP返回的是UTF-8編碼格式。用第二種方法就不會出現這樣的問題了,只要定義了編碼格式的站點就能正常返回信息(這里不能包括一些使用特別編碼的站點)。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
蜜臀久久99精品久久久久久宅男| 91色在线观看| 亚洲精品aⅴ中文字幕乱码| 日韩av一区在线| 亚洲精品美女免费| 成人妇女免费播放久久久| 色偷偷噜噜噜亚洲男人的天堂| 欧美日韩中文字幕日韩欧美| 欧美电影免费播放| 91亚洲精品在线| 中文字幕国产亚洲2019| 欧美精品在线第一页| 久久久国产精品x99av| 欧美最猛性xxxxx免费| 日韩精品免费在线视频| 国产日韩欧美中文| 成人黄色免费网站在线观看| 97香蕉超级碰碰久久免费的优势| 国产精品video| 欧美激情视频给我| 国产精品成人aaaaa网站| 久久人人爽人人爽人人片av高请| 亚洲精品美女久久| 亚洲天堂男人的天堂| 久久精品视频在线| 人妖精品videosex性欧美| 欧美精品制服第一页| 欧美日韩中文字幕综合视频| 亚洲性夜色噜噜噜7777| 国产一区深夜福利| 精品国产一区久久久| 亚洲免费视频在线观看| 亚洲精品影视在线观看| 亚洲精品美女久久久久| 综合久久五月天| 欧美精品一区二区三区国产精品| 欧美极品欧美精品欧美视频| 欧美在线一区二区三区四| 久久男人的天堂| 久久精品色欧美aⅴ一区二区| 国产又爽又黄的激情精品视频| 俺去了亚洲欧美日韩| 91精品国产成人| 欧美插天视频在线播放| 97精品一区二区视频在线观看| 成人精品一区二区三区| 97精品伊人久久久大香线蕉| 国产精品扒开腿做爽爽爽视频| 国产成人免费av电影| 亚洲精品色婷婷福利天堂| 91免费看国产| 国产精品视频资源| 在线观看成人黄色| 成人在线一区二区| 国产黑人绿帽在线第一区| 中文字幕日韩有码| 在线国产精品视频| 成人免费淫片视频软件| 日韩av一区二区在线| 日本免费在线精品| 亚州精品天堂中文字幕| 亚洲成人久久电影| 精品亚洲一区二区三区在线播放| 国产精品日韩在线| 在线精品国产成人综合| 国产精品va在线| 成人激情综合网| 国产成人亚洲综合91精品| 日韩午夜在线视频| 亚洲精品99久久久久中文字幕| 欧美午夜激情小视频| 欧美日韩精品在线| 国产精品久久久久久久久免费| 午夜精品视频在线| 亚洲第一区第一页| 国产成人亚洲综合91| 日韩专区在线播放| 欧美天天综合色影久久精品| 亚洲欧美日韩国产精品| 午夜精品久久久久久久99黑人| 国产一区二区三区在线视频| 蜜臀久久99精品久久久久久宅男| 正在播放亚洲1区| 亚洲女性裸体视频| 日本午夜人人精品| 欧美午夜精品久久久久久久| 中文字幕日韩av综合精品| 亚洲人成网站免费播放| 亚洲的天堂在线中文字幕| 欧美又大又粗又长| 国产精品mp4| 国产亚洲精品91在线| 欧美激情精品久久久久久蜜臀| 中日韩午夜理伦电影免费| 欧洲亚洲在线视频| 午夜免费日韩视频| 久99九色视频在线观看| 色综合久久久888| 国产精品免费网站| 国产精品白嫩初高中害羞小美女| 成人黄色片网站| 国产美女久久久| 亚洲一区二区精品| 国产91精品在线播放| www.日韩欧美| 欧美在线国产精品| 亚洲аv电影天堂网| 最近日韩中文字幕中文| 久久伊人精品一区二区三区| 91在线观看免费网站| 亚洲国产精品成人va在线观看| 午夜精品一区二区三区av| 久久91精品国产91久久跳| 久久久爽爽爽美女图片| 日韩中文字幕在线精品| 欧美极品少妇全裸体| 中文字幕日韩免费视频| 欧美超级乱淫片喷水| 日韩欧美一区二区三区| 欧美性生活大片免费观看网址| 亚洲免费电影一区| 啪一啪鲁一鲁2019在线视频| 综合久久五月天| 亚洲精品国产精品国产自| 91高清免费在线观看| 亚洲国产成人91精品| 欧美性猛交xxxx免费看久久久| 欧美精品激情在线观看| 国产午夜精品全部视频在线播放| 91美女福利视频高清| 亚洲欧美中文日韩v在线观看| 亚洲精品国精品久久99热一| 亚洲免费小视频| 狠狠躁夜夜躁久久躁别揉| 日韩免费在线视频| 日本高清久久天堂| 欧美极品少妇xxxxⅹ喷水| 亚洲男人天堂2024| 亚洲自拍另类欧美丝袜| 久久九九亚洲综合| 亚洲电影中文字幕| 国产丝袜高跟一区| 亚洲欧洲在线免费| 久久久久久久影院| 日韩一二三在线视频播| 中文字幕国内精品| 久久艹在线视频| 亚洲黄色片网站| 91国产中文字幕| 米奇精品一区二区三区在线观看| 亚洲精品视频在线播放| 精品久久久久久中文字幕大豆网| 欧美激情高清视频| 精品精品国产国产自在线| 韩日欧美一区二区| 久久久久久久激情视频| 欧美激情一区二区三区久久久| 91沈先生在线观看| 日韩免费高清在线观看| 欧美肥老太性生活视频| 精品国产欧美一区二区三区成人| 青青草原一区二区| 98精品在线视频| 日韩欧美在线免费|