zoukankan      html  css  js  c++  java
  • ajax跨域,json,jsonp

    由于浏览器安全模型的同源策略,ajax存在跨域问题。

    解决跨域问题:

    1.服务器代理

    a.com中:

    页面  -->  $.post(

      'http://a.com/proxy.php',

      ..)

    proxy.php -->  $url="http://b.com/send.php?";   //b.com的接口

            $url.=http_build_query($data)   //传递b的数据

    2.jsonp

    a.com中:

    <script>

      function show(){

        alert(data.txt);

      }

    </script>

    <script src="http://a.com/user.php?calback=show"></script>

    b.com的user.php中:

    echo $get['callback'].'('.json_encode($data').')';

    将输出show({"uid":1000,"name"..})  是一个可执行的js函数体

    JSONP的优点是:它不像XMLHttpRequest对象实现的Ajax请求那样受到同源策略的限制;它的兼容性更好,在更加古老的浏览器中都 可以运行,不需要XMLHttpRequest或ActiveX的支持;并且在请求完毕后可以通过调用callback的方式回传结果。

     

    JSONP的缺点则是:它只支持GET请求而不支持POST等其它类型的HTTP请求;它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

            

  • 相关阅读:
    乐理学习
    hashtable
    vim配置
    SSH & Git
    Java实现单向链表反转
    Java实现二叉树遍历
    Mysql主从配置
    使用VirtualBox虚拟机搭建局域网
    Nginx配置try_files实践一
    Maven package打包webapp项目遇到的问题
  • 原文地址:https://www.cnblogs.com/tu-l/p/5231403.html
Copyright © 2011-2022 走看看