我需要使用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跨域请求将起作用!

来自: stackoverflow.com