使用jsonP的方式跨域无法自定义headers

在项目中遇到一个问题,所有的接口必须要发送额外的headers,这在iOS和Android项目中没有任何问题,但是前端同学需要跨域使用这个接口,出现了问题。

因为涉及到跨域,所以前端使用了jsonP的方式,但是在ajax请求中的headers完全没有生效,后来查找资料,发现这个方式根本不可行,也就是说使用jsonP的方式注定无法自定义headers。

jsonP的原理:因为js脚本无法跨域请求,但是js脚本本身是可以跨域请求的,将服务器的返回的数据当成一个js的参数,代码示例:

<script type="text/javascript">
    var cb= function(data){
        // do something
    };
</script>
<script type="text/javascript" src="http://xxx.com/remote.js?callback=cb"></script>

jquery的实现方式和上面的代码基本上是一样的,也是页面tag,所以是无法自定义headers的,只能另想它法。