讀取跨網域主機的資料方法1:最簡單方法,不須使用asp.net, php, 使用<script src='....js'></script>,
讀取跨網域資料的基本原理: 在<body>...</body>之間放入<script type="text/javascript" src="http://acupun.site/lecture/jquery_phoneGap/18-CrossDomain01.js">,裡面有個callBackdata()會傳回值
1.:目前javascript與jQuery網頁,若要讀取跨網域資料,市場上所使用的方法,幾乎都是借助伺服器端程式php, asp.net, node.js等等來執行call back函數才能達成讀取跨網域端的資料。
2.在此提出一個另類且簡單的快速方法,且不需要php, asp.net等伺服器技術:使用<script src="http://..../example.js">即可讀取任何網址的*.js資料原理,把json,xml放置該example.js 裡面,即可讀到
1.:javascript網頁,讀取跨網域資料的基本原理
(1).一般的簡單非跨網域的程式
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function callBackdata(txt) {
alert(txt);
}
</script>
</head>
<body>
<script type="text/javascript">
callBackdata("來自跨網域主機的密碼文字:大家好"); </script>
</body>
</html> |
(2).拆解上面網頁,分成兩部分,把callBackdata("來自跨網域主機的密碼文字:大家好")放到遠端跨網域的call.js裡面
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function callBackdata(txt) {
alert(txt);
document.getElementById("id01").innerHTML = txt;
}
</script>
</head>
<body>
<script type="text/javascript" src="http://acupun.site/lecture/jquery_phoneGap/call.js"> </script>
</body>
</html> |
在遠端伺服器有個call.js,裡面程式碼的內容是
callBackdata("來自跨網域主機的密碼文字:大家好"); |
結論:利用javascript這種可以呼叫遠端*.js的功能,就可以把xml, json資料放入遠端*.js的callBackdata("資料儲存在這裡"),間接達成讀取跨網域資料的目的了
(2).本題實作:
在遠端伺服器有個18-CrossDomain01.js,裡面程式碼的內容是
callBackdata("來自跨網域主機的密碼文字:大家好"); |
在本地端網頁18-CrossDomain01.html
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function callBackdata(txt) {
alert(txt);
}
</script>
</head>
<body>
<p>
<div class="purple1" id="id01"></div>
</p>
<script type="text/javascript" src="http://acupun.site/lecture/jquery_phoneGap/18-CrossDomain01.js"> </script>
</body>
</html> |
注意:
(1).
<script type="text/javascript" src="*.js....>要放在</body>的最下面,
舉例:<div class="purple1" id="id01"></div>若放在<script type="text/javascript" src="*.js....>的下面,則無法在id01處顯示文字
結論:程式控制所顯示的元件,若在<script type="text/javascript" src="*.js....>的下面,都無法顯示