1. ホーム
  2. ajax

[解決済み] IEでjQueryのajaxを呼び出すと「No Transport」エラーが発生する。

2022-11-03 05:44:14

質問

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 のクロスドメインリクエストが動作します!