【发布时间】:2016-04-18 18:05:36
【问题描述】:
我创建了一个 asp.net webapi 并通过 azure 托管它。
当我运行host/api/carparks 时,这工作正常。当我运行 ODATA 查询字符串时它也可以工作
host/api/carparks?$Filter%20eq%20%27Liverpool%27
Google chrome 以 JSON 格式返回我想要的结果。
我遇到的问题是,我需要创建一个“客户端”应用程序来可视化我的数据。我创建了一个非常简单的 for 循环来返回我的数据以进行测试,一旦我返回了数据,我就可以开始创建我的应用程序。
<script src="https://code.jquery.com/jquery-1.10.2.js"></script>
<script type="text/javascript">
function getStations() {
var town = document.getElementById("town").value;
var stationList = "<p>";
var uri = "http://localhost:38852/api/carparks?$filter=Town%20eq%20%27" + town + "%27";
$.getJSON(uri,
function (data) {
$('#here_data').empty(); // Clear existing text.
// Loop through the list of products.
$.each(data, function (key, val) {
stationList += val.Name + '<br />';
});
stationList += "</p>";
document.getElementById("here_data").innerHTML = stationList;
});
}
$(document).ready(getStations);
</script>
</head>
<body onload="getStations()">
<h1>Stations API</h1>
<p>Enter town</p>
<input type="text" id="town" value="Derby" />
<input type="button" value="Find Stations" onclick="getStations()" />
<div id="here_data">
<p>Car parks go here</p>
</div>
</body>
</html>
当我在本地运行我的 web api 时,我的客户端应用程序运行良好,但是当我将 getJSON 请求 URI 更改为我的天蓝色的(在浏览器中工作!)时没有任何反应。
我尝试将我的客户端应用程序上传到 azure 并以这种方式进行测试,但没有:(
是否有任何 Azure 设置需要更改?
【问题讨论】:
-
什么都没有发生?你的函数运行了吗?您能在浏览器的网络工具中看到 HTTP 请求吗?您能在浏览器的 JavaScript 控制台中看到错误吗?如果你在那里添加一个
.fail作为described in the documentation 会发生什么? Azure 托管代码中的 URL 是否正确,包括端口? -
@mason 感谢您的回复。该函数确实运行但它不返回任何数据。我试图包含另一个显示发生了什么的图像,但它不允许我,因为我是堆栈溢出 n00b。我刚刚将“客户端”html 页面上传到我的 web api 上,它也可以按我的意愿工作。但是,它不能在单独的 Web 应用程序中运行。
-
您确实没有回答我在之前评论中提出的大部分问题。请重新阅读并确保解决所有问题。
-
@mason 嗨对不起,这有帮助吗? imgur.com/kq1xcX6 azure 代码中的 URL 是正确的。
-
HTTP 304 是一个not modified 状态码。
标签: asp.net azure asp.net-web-api azure-web-app-service