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