我正在使用WAMP堆栈并尝试进行jsonp调用(我控制两个域),而在Chrome和Firefox中,jsonp调用工作得很好。看起来IE 11似乎没有等待响应,只是为我正在进行的通话返回null。
以下是我在Apache中为两个域设置的标头(目前它是全开放的,但我稍后会将其限制为特定域)。标题似乎不是一个问题,因为我在chrome和firefox中得到的结果很好
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header always set Access-Control-Max-Age "1000"
Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
这是我的jsonp请求:
$.ajax({
url: url,
dataType: "jsonp",
crossdomain:true,
async: true,
cache:false,
jsonpCallback: "jsonCallback",
contentType: "application/json; charset = utf-8",
success: function (data) {
if(data.token != "")
{
handleMessage(siteCookie, data.token);
}
else
{
}
},
error: function (request, status, error) {
alert(error);
}
});
以下是我在IE 11中的回答:
jsonCallback({'token' : ''})
相同的jsonp调用返回Chrome和firefox中的corect响应就好了:
jsonCallback({'token' : 'MY_TOKEN_VALUE'})
其中MY_TOKEN_VALUE包含实际令牌
供您参考:MY IE 11版本为:11.0.9600.17843