0

我在一个 ASP.NET 网站上工作,我需要从外部url 获取 XML。它使用 ASP.NET MVC 效果很好,XmlDocument但现在我需要解析 XML 而无需再次访问服务器,因此是客户端。我想做的一个例子:

假设我们有 3 个<select>下拉列表,第一个包含所有汽车制造商,第二个包含所有汽车型号,第三个包含所有类型。因此,当页面加载时,我们有第一个包含所有汽车制造商的下拉菜单,而其他两个被禁用。当我选择一个品牌时,我想加载所选品牌的所有模型(下拉菜单 3 仍然禁用)。然后当我选择汽车模型时,我想加载所选模型的所有类型。

所有品牌都可以由 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>

但这不起作用。我读了很多关于使用 sulution 的问题,crossDomain: true但这dataType: jsonp也不起作用。我还阅读了我从需要支持中获取 XML 的服务器jsonp,但是我无法对此做些什么,因为它不是我的服务器,而是一个 Web 服务。

您可能已经看到,获取所有品牌的示例网址是-- hidden --/make.alx. 然后当用户选择一个品牌时,我可以通过在 url 中发送 carcode 来获取该品牌的型号,例如:-- hidden --/model.alx?carcode=2

所以简而言之,问题是:如果可能的话,我怎样才能让这个工作与 jQuery 一起工作,如果没有,我怎样才能让这个工作以另一种方式工作?我有一个很好的方法可以使用 ASP.NET MVC 做到这一点,但无需重新加载整个页面?

这个网站是我想要的一个很好的例子。正如您在标题下方看到的那样,您可以选择汽车品牌、型号和类型。

提前致谢!

4

2 回答 2

1

不能通过 jQuery,但您可以在您的网站中为此创建一个代理页面。

于 2012-12-29T09:30:07.933 回答
0

好的,对于那些也在为此苦苦挣扎的人,这就是我解决这个问题的方法,感谢@GovindKamalaPrakashMalviya。他把我推向了正确的方向,我搜索了一段时间,最后发现它必须通过JSON搜索如何去做,最后通过这个网站让它工作。效果很好!谢谢戈文德!

于 2012-12-29T12:51:11.133 回答