0

我想调用一个返回 JSON 对象的 Web 服务,Web 服务规范如以下链接中所述:

http://dev.joget.org/community/display/KB/JSON+API#JSONAPI-web%2Fjson%2Fworkflow%2Fpackage%2Flist

我在我的 asp.net mvc3 Web 应用程序中有一个简单的视图,如下所示:

@{
    ViewBag.Title = "Home Page";
}
   <script src="@Url.Content("~/Scripts/f.js")" type="text/javascript"></script>


<h2>@ViewBag.Message</h2>
<p>
    To learn more about ASP.NET MVC visit <a href="http://asp.net/mvc" title="ASP.NET MVC Website">http://asp.net/mvc</a>.
</p>
<h1>The Processes are </h1>

<ul id="products"/>

以及以下 f.js 调用 Web 服务并显示返回的 JSON 数据:

$(document).ready(function() {
    $.ajax({
        type: 'GET',
        url: 'http://localhost:8080/jw/web/json/workflow/package/list?loginAs=admin',
        dataType: 'json',
        success: function(data) {
            $.each(data, function(key, val) {
                alert("jsonData");
                // Format the text to display.
                var str = val.packageId + ': $' + val.packageName;

                // Add a list item for the product.
                $('<li/>', {
                    text: str
                }).appendTo($('#products'));

            });
        }
    });
});​

但问题是,当我导航到视图时,由于 AJAX 调用,视图上不会显示任何内容,请记住,如果我手动键入 URL:'http://localhost:8080/jw/web/ json/workflow/package/list?loginAs=admin' 在我的浏览器地址栏中,然后结果将成功显示在浏览器中?

那么可能出了什么问题?

:::更新:::

我将我的 JavaScript 更新为以下内容:

$(document).ready(function() {
    $.ajax({
        type: "GET",
        url: "http://localhost:8080/jw/web/json/workflow/package/list?loginAs=admin",
        dataType: "JSONP",
        contentType: "application/json; charset=utf-8",
        success: function(data) {
            $.each(data, function(key, val) {

                // Format the text to display.
                var str = val.packageId + ': $ ' + val.packageName;

                // Add a list item for the product.
                $('<li/>', {
                    text: str
                }).appendTo($('#products'));

            });
        }
    });
});​

但 Web 服务调用的结果返回为:

- undefined: $ undefined

而不是:

 {"activityId":"","processId":"289_process1"}

那么阻止我的代码显示正确数据的问题是什么?

4

1 回答 1

-1

我将我的 JavaScript 代码修改为以下内容:-

//code goes here
success: function(result) {
$.each(result.data, function(key, val) {

//code goes here
于 2012-10-11T11:28:29.780 回答