0

我有兩臺服務器的任何數據,一個爲localhost:3000,另一種是gjy.com:3001,jQuery的阿賈克斯JSONP跨域回調函數沒有得到僅在IE7及以下

gjy.com:3301服務器端是expressjs。

//app.js 
app.get('/user/jsonp', user.jsonp); 

//user.js 
exports.jsonp = function(req, res) { 
    res.jsonp({"name": "jsp"}); 
}; 

本地主機:3000頁JS功能代碼象下面這樣:

 $.ajax({ 
      type: 'GET', 
      url: 'http://gjy.com:3001/user/jsonp', 
      dataType: 'jsonp', 
      crossDomain: true, 
      success: function(data) { 
       console.log('data is loaded'); 
       console.log(data); 
      }, 
      error: function(err) { 
       console.log('err'); 
       console.log(err); 
      } 
     }); 

,並在IE7控制檯結果及以下

data is loaded 
undefined 

,但在其他瀏覽器

控制檯結果
data is loaded 
{"name": "jsp"} 
+0

奇怪的是,您將'crossDomain'選項設置爲true,並使用JSONP的'dataType'。這不應該需要,也許是造成你的問題。我建議刪除'crossDomain'選項並再次嘗試。 –

回答

0

在IE8中,微軟實施了他們自己的crossDomain版本,而不是實現XMLHttpRequest的CORS版本,IE團隊使用他們自己的專有對象XDomainRequest

jQuery爲IE8補丁,但在IE7中沒有這樣的方法實現,所以IE7根本不支持跨域調用,它只支持在IE8以上。

+0

jquery ajax做支持ie7跨域請求!但不支持控制檯功能 – jingyinggong