Jsonp post 跨域方案


Posted in Javascript onJuly 06, 2015

近期在项目中遇到这样一问题,关于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);
}

浏览器运行如下图:

Jsonp post 跨域方案

看下运行结果,即使设置传送方式为 post,Jquery也会自动转为 get,难道Jsonp真的不支持 post 方式提交吗,继续折腾...

折腾到现在最终在 stackoverflow 里找到一些关于这方面的资料,看来老外也遇到这样问题呀,地址贴给大家
http://stackoverflow.com/questions/3860111/how-to-make-a-jsonp-post-request-that-specifies-contenttype-with-jquery

关键点如下图:

Jsonp post 跨域方案

看上图我们发现,箭头标记处有变化,先不管这么多了,折腾这么久了,先对应放到程序里再说嘛,万一可以呢

客户端更改:
添加:crossDomain: true
修改:dataType: "json"

服务端添加:
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: POST');
header('Access-Control-Max-Age: 1000');

运行结果如下图:

Jsonp post 跨域方案

Jsonp post 跨域方案

到这里我们发现问题终于解决了,但我们详细观察发现,请求时间那是个漫长啊,,,看来老外也没个效率高的解决方案,

最后,我想说的是,要想完美支持POST方式的JSONP真心不好办啊,咱就到这吧,折腾不少时间了。

以上内容可能会关联到其它技术点,有兴趣自己可去研究哈,这里主要解决 Jsonp ,写的不好,大家请勿吐槽,谢谢!

以上所述就是本文的全部内容了,希望大家能够喜欢。

Javascript 相关文章推荐
用Javascript同时提交多个Web表单的方法
Dec 26 Javascript
Extjs学习笔记之九 数据模型(上)
Jan 11 Javascript
30个让人兴奋的视差滚动(Parallax Scrolling)效果网站
Mar 04 Javascript
AngularJS身份验证的方法
Feb 17 Javascript
ReactNative-JS 调用原生方法实例代码
Oct 08 Javascript
js实现点击切换checkbox背景图片的简单实例
May 08 Javascript
layer.open的自适应及居中及子页面标题的修改方法
Sep 05 Javascript
使用Layui搭建后台管理界面的操作方法
Sep 20 Javascript
node省市区三级数据性能测评实例分析
Nov 06 Javascript
ES6对象操作实例详解
May 23 Javascript
vue实现整屏滚动切换
Jun 29 Javascript
Nuxt配置Element-UI按需引入的操作方法
Jul 06 Javascript
javascript运动详解
Jul 06 #Javascript
浅谈jQuery中height与width
Jul 06 #Javascript
jQuery中$this和$(this)的区别介绍(一看就懂)
Jul 06 #Javascript
浅谈Javascript实现继承的方法
Jul 06 #Javascript
JavaScript保存并运算页面中数字类型变量的写法
Jul 06 #Javascript
angularjs客户端实现压缩图片文件并上传实例
Jul 06 #Javascript
jQuery 遍历函数详解
Jul 05 #Javascript
You might like
初品cakephp 入门基础
2012/02/16 PHP
phpStudy中升级MySQL版本到5.7.17的方法步骤
2017/08/03 PHP
js动态修改整个页面样式达到换肤效果
2014/05/23 Javascript
AngularJS快速入门
2015/04/02 Javascript
JavaScript的Backbone.js框架环境搭建及Hellow world示例
2016/05/07 Javascript
canvas 绘制圆形时钟
2017/02/22 Javascript
理解Angular的providers给Http添加默认headers
2017/07/04 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
快速解决vue动态绑定多个class的官方实例语法无效的问题
2018/09/05 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
Nodejs实现多文件夹文件同步
2018/10/17 NodeJs
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
删除目录下相同文件的python代码(逐级优化)
2012/05/25 Python
Python中lambda的用法及其与def的区别解析
2014/07/28 Python
Python中用Decorator来简化元编程的教程
2015/04/13 Python
python实现ID3决策树算法
2017/12/20 Python
python在非root权限下的安装方法
2018/01/23 Python
在Pandas中处理NaN值的方法
2019/06/25 Python
python2.7的flask框架之引用js&amp;css等静态文件的实现方法
2019/08/22 Python
对YOLOv3模型调用时候的python接口详解
2019/08/26 Python
让IE6支持css3,让 IE7、IE8 都支持CSS3
2011/10/09 HTML / CSS
html5 worker 实例(二) 图片变换效果
2013/06/24 HTML / CSS
使用placeholder属性设置input文本框的提示信息
2020/02/19 HTML / CSS
size?丹麦官网:英国伦敦的球鞋精品店
2019/04/15 全球购物
绢花、人造花和人造花卉:BLOOM
2019/08/07 全球购物
证婚人搞笑证婚词
2014/01/10 职场文书
公务员政审个人鉴定
2014/02/25 职场文书
竞争上岗演讲稿范文
2014/05/12 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
2014年妇联工作总结
2014/11/21 职场文书
大学生见习总结报告
2015/06/24 职场文书
医生行业员工的辞职信
2019/06/24 职场文书
2019初中学生入团申请书
2019/06/27 职场文书
python学习之panda数据分析核心支持库
2021/05/07 Python
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
Python PIL按比例裁剪图片
2022/05/11 Python