您好,欢迎访问一九零五行业门户网

Jsonp post 跨域方案

近期在项目中遇到这样一问题,关于jsonp跨域问题,get传值是可以的,但post传值死活不行啊,于是网上看了一大堆关于这方面的资料,最终问题得以解决,今天抽空与大家分享下。
说明:
http://www.t1.com/index.php 服务端url
当然这是我本地配置的,需要改为自己对应的地址。
客户端代码:
<script> $(function(){ var url = 'http://www.t1.com/index.php'; $.ajax({ type: 'post', url: url, data: {name:'wangyulu'}, datatype: 'jsonp', success:function(result){ console.log(result); } }); }); </script>
服务端代码:
<?php if($_post){ $arr = array('name'=>$_post['name'], 'age'=>23); echo json_encode($arr); }
浏览器运行如下图:
看下运行结果,即使设置传送方式为 post,jquery也会自动转为 get,难道jsonp真的不支持 post 方式提交吗,继续折腾...
箭头标记处有变化,先不管这么多了,折腾这么久了,先对应放到程序里再说嘛,万一可以呢
客户端更改:
添加:crossdomain: true
修改:datatype: json
服务端添加:
header('access-control-allow-origin: *');
header('access-control-allow-methods: post');
header('access-control-max-age: 1000');
运行结果如下图:
到这里我们发现问题终于解决了,但我们详细观察发现,请求时间那是个漫长啊,,,看来老外也没个效率高的解决方案,
最后,我想说的是,要想完美支持post方式的jsonp真心不好办啊,咱就到这吧,折腾不少时间了。
以上内容可能会关联到其它技术点,有兴趣自己可去研究哈,这里主要解决 jsonp ,写的不好,大家请勿吐槽,谢谢!
以上所述就是本文的全部内容了,希望大家能够喜欢。
更多jsonp post 跨域方案。
其它类似信息

推荐信息