我正在ASP.NET網站上工作,我需要從外部網址獲取XML。它使用ASP.NET MVC的XmlDocument
效果很好,但現在我需要解析XML而無需再次訪問服務器,所以客戶端。我想要做的一個例子:在ASP.NET MVC 4網站客戶端閱讀XML
假設我們有3 <select>
下拉列表,第一個包含所有汽車模型,第二個包含所有汽車模型,第三個包含所有類型。所以,當頁面加載時,我們有第一個下拉所有carmakes,其他兩個禁用。當我選擇一個品牌時,我想加載所有型號的所選的品牌(下拉第3號仍然禁用)。那麼當我選擇一款車型時,我想加載所有型號的所選車型。
所有的make都可以通過ASP.NET的XmlDocument
加載,它已經可以正常工作了,但其他數據需要在客戶端解析。我試過這個使用jQuery:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR...nsitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<script type="text/javascript" src="http://code.jquery.com/jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$.ajax({
type: "GET",
url: "-- hidden --",
dataType: "xml",
success: parseXml
});
function parseXml(xml){
$(xml).find("Make").each(function(){
$("#output").append($(this).find("carmake").text() + "<br />");
});
}
});
</script>
</head>
<body>
<div id="output"></div>
</body>
</html>
但這並不行。我讀了很多問題,其中污染物使用crossDomain: true
和dataType: jsonp
,但這也不起作用。我也讀過服務器,我得到的XML需要支持jsonp
,但我無法做到這一點,因爲它不是我的服務器,而是一個web服務。
正如您可能已經看到的,獲取所有產品的樣本url是-- hidden --/make.alx
。然後,當用戶選擇了一個make,我可以通過在url中發送carcode來獲得make的模型,例如:-- hidden --/model.alx?carcode=2
所以簡而言之,問題是:如果可能,我怎樣才能使用jQuery來處理這個問題,如果不是的話,我怎樣才能以另一種方式工作?我有一個很好的方式來使用ASP.NET MVC做到這一點,但沒有重新加載整個頁面?
This網站是我想要的一個很好的例子。正如你可以在標題下看到的那樣,你可以選擇汽車品牌,型號和類型。
在此先感謝!
感謝您的回答。好的,代理頁面對我來說是新事物,請你解釋一下如何做到這一點? – avb
對不起,使用代理字,在你的網站創建簡單的頁面,這個頁面訪問外部xml和jquery ajax將訪問您的網站的頁面。 –