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 に答える