0

このリンクのmentioendとして次のWebサービスを呼び出したいhttp://dev.joget.org/community/display/KB/JSON+API#JSONAPI-web%2Fjson%2Fworkflow%2Fprocess%2Flist

だから私のasp.netmvcビュー内に私はfolloiwngを書いた:-

<script type="text/javascript">
            $(document).ready(function () {
                // Send an AJAX request
                $.getJSON("http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin",
                function (data) {
                    // On success, 'data' contains a list of products.
                    $.each(data, function (key, val) {

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

                        // Add a list item for the product.
                        $('<li/>', { text: str })
                        .appendTo($('#products'));
                    });
                });
            });
</script>
<h1>The Processes are</h1>
<ul id="products"/>

しかし、上記のWebページを実行すると、プロセスは表示されませんが<h1>The Processes are </h1>、次のように入力するhttp://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin&nbspと; ブラウザのアドレスバーに直接表示すると、すべてのプロセスが表示されます。では、何がうまくいかないのでしょうか?

BR

- :::: UPDATED ::::-私は自分の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

ドキュメントで説明されているように、クエリ文字列の最後にJSONPcallbackパラメータを指定してみてください。callback=?

var url = 'http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin&callback=?';
$.getJSON(url, function (data) {
    // On success, 'data' contains a list of products.
    $.each(data, function (key, val) {
        // Format the text to display.
        var str = val.id + ': $' + val.packageName;
        // Add a list item for the product.
        $('<li/>', { text: str }).appendTo('#products');
    });
});

アップデート:

JSON を (最後に) 表示した後、製品のリストはプロパティ内に含まれているため、結果に直接ではなく、このプロパティを調整して操作するdata必要があります。$.each

{
    "data": [
        {
            "packageName": "CRM",
            "packageI‌​d": "crm"
        },
        {
            "packageName": "EngineersAssociation",
            "packageId": "EngineersAssociation"
        },
        {
            "packageName": "LeaveApp",
            "packageId": "leaveApp"
        },
        {
            "packageName": "Newtest",
            "packageId": "Newtest"
        },
        {
            "p‌​ackageName": "TestApp",
            "packageId": "testapp"
        },
        {
            "packageName": "test54",
            "packageId": "test5"
        }
    ]
}

したがって、コードを調整します。

var url = 'http://localhost:8080/jw/web/json/workflow/process/list?j_username=kermit&hash=9449B5ABCFA9AFDA36B801351ED3DF66&loginAs=admin&callback=?';
$.getJSON(url, function (result) {
    // On success, 'result.data' contains a list of products.
    $.each(result.data, function (key, val) {
        // Format the text to display.
        var str = val.id + ': $' + val.packageName;
        // Add a list item for the product.
        $('<li/>', { text: str }).appendTo('#products');
    });
});
于 2012-10-09T10:42:42.807 に答える