
標題: ajax 讀取 web service xml 問題 [打印本頁]
作者: ponshane82503 時間: 2014-10-8 22:57 標題: ajax 讀取 web service xml 問題
大家好想問一個問題,是有關於jQuery Ajax的部分
我想要從http://egis.moea.gov.tw/innoserve/webservice/main.aspx這地方所提供web service取得資料回傳(xml)
我的查詢網址如下:http://egis.moea.gov.tw/MoeaEGFx ... 9863&buffer=800
這部分還ok,但是當我放進去ajax的時候卻無法跑,error一直alert我 undefined!!
程式碼如下:$(document).ready(function(){
var Link = "http://egis.moea.gov.tw/MoeaEGFxData_WebAPI_Inside/InnoServe/BusinessBUSM?x=120.263309&y=22.629863&buffer=800";
function parse(document){
alert("In1!");
$(document).find("BUSMINFO").each(function(){
$("#content").append(
'<p>BussName: '+$(this).attr('BussName')+
//'<br /> Title: '+$(this).find('title').text()+
//'<br /> Author: '+$(this).find('author').text()+
'</p>'
);
});
}
$.ajax({
url: Link, // name of file you want to parse
dataType: "xml",
type: 'GET',
data: myData,
contentType: "application/xml; charset=utf-8",
success: parse,
error:function (xhr, ajaxOptions, thrownError){
alert(thrownError);
}
//error: function(){alert("Error: Something went wrong");}
});
});
但當我把http://egis.moea.gov.tw/MoeaEGFx ... 9863&buffer=800這網頁下載下來當作xml檔放在本機端時,確沒有問題!
想知道我哪個部分做錯了,希望獲得指正!謝謝><
作者: wmh 時間: 2014-10-8 23:15
你是在自己的網站作 cross domain 的 ajax call 嗎? 這樣無法存取喔。
一般來說這樣的資料要透過自己後端的程式來抓,例如 Java、PHP、Python、ROR 等等。
前端要做 cross domain 的方式有很多種,但是都需要 server 端配合,我沒有細看,但是我猜測他們(egis.moea.gov.tw)沒有開放這樣的方式。
作者: ponshane82503 時間: 2014-10-9 00:01
您好,謝謝您剛剛給的回覆!因為我必須透過egis.moea.gov.tw所開放的web service去取他們提供的資料,您提到的用自己後端程式抓是指將她的xml結果抓下來嗎? 那與他們開放有什麼關係呢?不好意思這部分有點入門><
作者: wmh 時間: 2014-10-9 00:32
我是指如果你要用 JavaScript 會需要 server 端有開放或設定好 cross domain 的存取方式或權限。
但是如果你改用後端程式抓就不會有這個問題。
作者: ponshane82503 時間: 2014-10-9 17:12
回wmh大
謝謝你指點迷津,我改用php抓檔回傳給javascript
已經成功了!
歡迎光臨 jsGears.com 技術論壇 - AJAX, JavaScript, jQuery, 網站開發, 前端效能優化 (http://jsgears.com/) |
|