2013-08-29 64 views
0

我遇到了一個奇怪的問題。在我的應用程序中,我有以下代碼Winjs獲取請求失敗返回數據

WinJS.xhr({ 
       url: 'http://bdzservice.apphb.com/api/Route?fromStation=София&toStation=Варна&date=30/08/2013&startTime=00:00&endTime=24:00' 

      }).then(function (success) 
      { 
       console.log(success); 
      }, 
      function (error) 
      { 
       console.log(error); 
      } 
      ); 

問題是我得到一個空的響應文本(狀態200)。我提供的Url通過瀏覽器和其他休息客戶端返回數據,但在應用程序中我沒有收到任何數據。問題在哪裏?

回答

1

你需要通過encodeURIComponent編碼查詢字符串參數(粘貼URL時,瀏覽器將自動爲您完成此)。

下面的代碼將這樣的伎倆:

function serialize (obj) { 
var str = []; 
for (var p in obj) { 
    if (obj.hasOwnProperty(p)) { 
     str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); 
    } 
} 

return str.join("&"); 
}; 

var request = { 
    fromStation: 'София', 
    toStation: 'Варна', 
    date: '30/08/2013', 
    startTime: '00:00', 
    endTime: '24:00' 
}; 
WinJS.xhr({ 
    url: 'http://bdzservice.apphb.com/api/Route?' + serialize(request) 
}).then(function(success) { 
    console.log(success); 
}, 
    function(error) { 
     console.log(error); 
    } 
);