我需要使用Foursquare API搜索场地。当然是跨域。
它在 Firefox 中没有任何问题,但在 Internet Explorer 中(我测试过 7、8、9)。
我JavaScript代码看起来像:
searchVenues: function(searchQuery) {
$.ajax({
url: 'https://api.foursquare.com/v2/venues/search',
data: {
sw: bound_south_west,
ne: bound_north_east,
query: searchQuery.query,
oauth_token: FSQ_OAUTH_TOKEN,
limit: 25,
intent: 'browse',
v: 20120206
},
cache: false,
dataType: 'json',
success: function(data) {
displayResults(data, searchQuery.query);
},
error: function(xhr, status, errorThrown) {
console.log(errorThrown+'\n'+status+'\n'+xhr.statusText);
}
});
}
在Firefox中,它完美地显示了收到的数据。在Internet Explorer中,它在控制台上登录:
No Transport
Error
Error
我应该怎么办?
答案
我在Windows Mobile 7上对此进行了测试。
在花了很多时间来理解之后,我终于找到了这一点:
http://bugs.jquery.com/ticket/10660
解决方案很简单,只需设置以下内容:
$.support.cors = true;
Ajax跨域请求将起作用!