2013-05-13 80 views
2
$.ajax(
     { 
      url:"http://date.jsontest.com", 
      type:"GET",    
      accepts:"utf-8", 
      success: function(data){ 

        navigator.notification.alert("successful"+data.toString()); 

      }, 
      error: function(){ 
        navigator.notification.alert("Unsuccessful"); 
      } 
     }); 

以上代碼不顯示來自Web服務的數據。它只顯示「成功」字符串的警告框。來自網絡服務的顯示數據

我該如何解決這個問題?

+0

你有沒有試過'JSON.parse(數據)',你會得到從JavaScript對象山谷結果?你也可以嘗試只顯示''數據''​​像''成功的'+數據'。你的服務器應該把它作爲字符串返回,所以'.toStrting()'方法是不需要的。檢查您的服務器是否正在返回一些數據。 – DaGLiMiOuX 2013-05-13 10:15:27

+0

您是否嘗試過console.log數據以確保它具有值? – atmd 2013-05-13 10:16:03

回答

1

你只需要到的dataType添加到您的Ajax調用,如:

dataType: "json", 

,你應該能夠獲得成功的方法,數據像:

console.log("successful: " + data.time); 
alert("successful: " + data.time); 

其實,你的ajax調用給出fo llowing結果:

{ 
    "time": "10:21:31 AM", 
    "milliseconds_since_epoch": 1368440491978, 
    "date": "05-13-2013" 
} 

我剛剛拿到了時間的警報,就可以得到其他值也以類似的方式。

+0

中實現現在每個json字符串都可以通過使用它的鍵值來訪問嗎? – nakul 2013-05-13 10:29:58

+0

這裏有三個鍵:'time,milliseconds_since_epoch&date'。爲了訪問每個字符串,你必須使用相應的鍵。例如,對於字符串''時間''「10:21:31 AM'',''日期'爲字符串'」05-13-2013「''等等。就是這樣。希望你明白了! – 2013-05-13 10:33:12

+0

謝謝我得到了答案 – nakul 2013-05-13 10:35:04

-1

在你成功的功能,使用方法:

$('.ajax_content').html(data);

,將與ajax_content的ID顯示在一個div內容,以便發生明顯變化的ID或創建ajax_content股利。

+3

這不是他要求做的 – kennypu 2013-05-13 10:15:21

+0

我的不好 - 下次需要閱讀這個問題:) – Ryan 2013-05-13 10:16:03

0

嘗試使用這樣

$.ajax({ 
      cache : false, 
      type : 'GET', 
      async : false, 
      url : "URL", 
      data : "<hello></hello>", 
      dataType : "xml", 
      success : function(xml) { 
       var endUser = $(xml).find('Username').eq(0).text(); 
       var admin = $(xml).find('Username').eq(1).text(); 
       var endUserPassword = $(xml).find('Password').eq(0).text(); 
       var adminPassword = $(xml).find('Password').eq(1).text(); 
       checkLogin(endUser, endUserPassword); 
      }, 

      error : function(xhr, ajaxOptions, thrownError) { 
       alert("Error while loading the Service !!!"); 
       $.mobile.loading('hide'); 
      } 
     }); 
+0

爲什麼'async:false'?非常** **不推薦將async屬性設置爲false,只有在絕對需要時纔可以。如果您使用ajax,默認情況下它是異步的,並且由於某種原因您想使用它。 – DaGLiMiOuX 2013-05-13 10:20:11

+0

問題是不是在WEbApp下是PhoneGAp,所以PhoneGap中沒有PostBack類的東西 - Android。代碼我在我的應用程序 – 2013-05-13 10:22:29

0

嘗試使用json dataType。如果你正在響應數組。只需用json_encode函數編碼該數組,如echo json_encode(array);併成功msg嘗試獲取迴應。所以data.index1,data.index2

$.ajax({ 
      cache : false, 
      type : 'GET', 
      url : "URL", 
      dataType : "json", 
      success : function(data) { 
          alert(data.index); 
      }, 

      error : function(xhr, ajaxOptions, thrownError) { 
      } 
     }); 
0

這是對我工作......

function getTest() { 
     $.ajax({ 
      type: 'GET', 
      contentType: "application/json; charset=utf-8", 
      dataType: 'jsonp', 
      url: 'http://date.jsontest.com?callback=?', 
      data: '{}', 
      success: function (data) { 

       alert(data.date); 

      }, 
      error: function (a) { 
       alert(a.responseText); 
      } 
     }); 
    }