Javascript 在ASP.NET中使用YQL和JQuery获取股票信息

Javascript 在ASP.NET中使用YQL和JQuery获取股票信息,javascript,jquery,asp.net,json,yql,Javascript,Jquery,Asp.net,Json,Yql,我正在尝试在ASP.NET项目中使用YQL查询检索股票信息。我使用jquery调用json来检索数据。问题是,当我单击页面上的“GetData”按钮时,它只是刷新页面,没有显示任何数据。如果我在VisualStudio中以调试模式运行项目,它将返回库存信息并显示在页面上,但是在调试结束时,它将清除页面。代码如下: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server">

我正在尝试在ASP.NET项目中使用YQL查询检索股票信息。我使用jquery调用json来检索数据。问题是,当我单击页面上的“GetData”按钮时,它只是刷新页面,没有显示任何数据。如果我在VisualStudio中以调试模式运行项目,它将返回库存信息并显示在页面上,但是在调试结束时,它将清除页面。代码如下:

    <html xmlns="http://www.w3.org/1999/xhtml">
    <head runat="server">
        <title></title>
        <script src="Scripts/jquery-1.11.0.min.js" type="text/javascript"></script>

        <script type="text/javascript">
            function getData() {
                var url = "http://query.yahooapis.com/v1/public/yql";
                var data = encodeURIComponent("select * from yahoo.finance.quotes where symbol in ('MSFT')");
                $.getJSON(url, 'q=' + data + "&format=json&diagnostics=true&env=http://datatables.org/alltables.env")
            .done(function (data) {
                $("#result").text("Bid Price: " + data.query.results.quote.LastTradePriceOnly);
                alert(data.query.results.quote.LastTradePriceOnly);
            })
            .fail(function (jqxhr, textStatus, error) {
                var err = textStatus + ", " + error;
                $("#result").text('Request failed: ' + err);
            });
            }

        </script>
    </head>
    <body>

        <form id="form1" runat="server">    
            <div id='result'>No Price</div>
            <button type="submit" onClick="getData();">Get Data</button>         
        </form>
    </body>
    </html>
JsFiddle:

有人知道为什么即使在JSON调用中返回数据,数据也会被清除吗


谢谢。

通过按钮上的提交操作提交表单 尝试重新考虑类似的因素,并添加.preventDefault

HTML


如果您关心IE9支持,您需要添加&callback=?到您的url以强制jsonp数据类型。
 <form id="form1" runat="server">    
        <input type="text" id="symbol" />
        <div id='result'>No Price</div>
        <button type="submit">Get Data</button>
    </form>
function getData(e) {
    //prevent sumbitting the form 
    e.preventDefault()
    var url = "http://query.yahooapis.com/v1/public/yql";
    var symbol = $("#symbol").val();
    var data = encodeURIComponent("select * from yahoo.finance.quotes where symbol in ('BGG')");

    $.getJSON(url, 'q=' + data + "&format=json&diagnostics=true&env=http://datatables.org/alltables.env")
        .done(function (data) {
        $("#result").text("Bid Price: " + data.query.results.quote.LastTradePriceOnly);
    })
        .fail(function (jqxhr, textStatus, error) {
        var err = textStatus + ", " + error;
            $("#result").text('Request failed: ' + err);
    });
}

//bind the submit event
$(document).on("submit", "#form1" getData)