Jsonp post 跨域方案

 更新时间:2015年07月06日 10:59:52   投稿:hebedich  
本文给大家讲述的是个人在一个项目中遇到的关于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 方式提交吗,继续折腾...

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

关键点如下图:

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

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

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

运行结果如下图:

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

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

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

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

相关文章

  • JavaScript中更安全的URL读写方法总结

    JavaScript中更安全的URL读写方法总结

    URL对于开发人员来讲,应该是非常熟悉的东西了吧。这篇文章主要为大家详细介绍了JavaScript中更安全的URL读写方法,希望对大家有所帮助
    2023-02-02
  • js实现点击烟花特效

    js实现点击烟花特效

    这篇文章主要介绍了js实现点击烟花特效,帮助大家更好的利用js美化网页,感兴趣的朋友可以了解下
    2020-10-10
  • javascript中layim之查找好友查找群组

    javascript中layim之查找好友查找群组

    这篇文章主要介绍了javascript中layim之查找好友查找群组,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • Javascript 中的 call 和 apply使用介绍

    Javascript 中的 call 和 apply使用介绍

    JavaScript 中通过call或者apply用来代替另一个对象调用一个方法,将一个函数的对象上下文从初始的上下文改变为由 thisObj 指定的新对象
    2012-02-02
  • javascript实现简单的页面右下角提示信息框

    javascript实现简单的页面右下角提示信息框

    本文给大家分享的是使用javascript实现简单的页面右下角提示信息框的方法和示例代码,有需要的小伙伴可以参考下。
    2015-07-07
  • JavaScript程序员应该知道的45个实用技巧

    JavaScript程序员应该知道的45个实用技巧

    在这篇文章中,我将分享一组JavaScript的技巧、窍门和最佳实践,这些都是JavaScript程序员应该知晓的,不管他们是使用在浏览器/引擎上,还是服务器端(SSJS——Service Side JavaScript)JavaScript解释器上
    2014-03-03
  • Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)

    Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)

    这篇文章主要介绍了Javascript DOM事件操作,结合实例形式总结分析了javascript监听鼠标点击、释放,悬停、离开等操作技巧,需要的朋友可以参考下
    2017-01-01
  • JS实现图片无间断滚动代码汇总

    JS实现图片无间断滚动代码汇总

    这篇文章主要介绍了JS实现图片无间断滚动代码汇总,非常实用的特效代码,需要的朋友可以参考下
    2014-07-07
  • 使用javascript插入样式

    使用javascript插入样式

    这篇文章主要介绍了使用javascript插入样式的相关方法,用javascript插入<style>样式以及<link>样式,感兴趣的小伙伴们可以参考一下
    2016-03-03
  • 解决Babylon.js中AudioContext was not allowed to start异常问题

    解决Babylon.js中AudioContext was not allowed&nbs

    这篇文章主要介绍了解决Babylon.js中AudioContext was not allowed to start异常问题方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04

最新评论