你的位置:首页 > Java教程

[Java教程]IE8浏览器跨域接口访问异常的解决办法


IE8版本以下浏览器绝对是一个神奇的存在,忙碌好久,万事具备,居然在ajax调用接口的时候直接爆炸

陈述一下问题

首先是有这样一个接口,请求类型POST,入参JSON,出参JSON,jQuery ajax调用代码如下:

chrome完美运行,但是当我们把同样的代码移植到IE8,IE的控制台是这么告诉我的

好吧,又是头疼的跨域问题,OK,既然这样,我们还是用jsonp来解决,但是jsonp的交互方式必须让我们去修改接口类型,OK,先把POST改成GET其他不变,我们换成jsonp再来调用,ajax调用代码如下:

IE控制台又这么告诉我,哦呵

很明显接口中返回值没有接收,查了下资料,原来是跨域需要用回调函数对返回结果进行包装,即对返回的json字符串以函数回调方式返回,下面是我们最后接口返回的字符串

callback({"status":"0","message":"ok"})