'No Transport' Error w/ jQuery ajax call in IE

Sang picture Sang · Feb 6, 2012 · Viewed 89.9k times · Source

I need to use foursquare API to search venues. Of course it is cross-domain.

It has no any problems in Firefox but in Internet Explorer (7, 8, 9 I've tested).

My javascript code looks like:

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);
       }
    });
}

In Firefox, it perfectly displays received data. In Internet Explorer, it logs on console:

No Transport
Error
Error

What should I do?

Answer

Magico picture Magico · Jun 25, 2012

I tested this on Windows Mobile 7.

After LOTS of time spent to understand, I finally found this:

http://bugs.jquery.com/ticket/10660

The Solution is simple, just set this:

$.support.cors = true;

and Ajax cross domain requests will work!