我遇到了一个奇怪的问题。在我的应用程序中,我有以下代码
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通过浏览器和其他其他客户端返回数据,但在应用程序中我没有数据。哪里可能是问题?
答案 0 :(得分:1)
您需要通过encodeURIComponent
对查询字符串参数进行编码(浏览器在粘贴网址时会自动为您执行此操作)。
以下代码可以解决问题:
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);
}
);