2012-10-09 30 views
0

我想調用返回,Web服務規範如下面的鏈接中提到的JSON對象的網絡服務:無法做出一個Ajax調用JSON網絡服務

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"} 

那麼,是什麼問題阻止我的代碼顯示正確的數據?

+0

你能與螢火蟲或提琴手檢查請求和響應? – tpeczek

+0

您的.NET代碼是否位於同一個域「http:// localhost:8080」?如果不是,你將有'同源'的問題。 – davehale23

+0

你有沒有嘗試把「contentType:」application/json; charset = utf-8「,」在ajax調用屬性? –

回答

-1

修改我的JavaScript代碼如下: -

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

//code goes here