美文网首页
jsonp详解

jsonp详解

作者: 西瓜古古丫 | 来源:发表于2018-10-07 22:43 被阅读0次

title: jsonp详解
tags:
categories:


ajax不允许跨域获取数据
说明,假定后端语言是 PHP

script标签

jsonp的原理:script标签具有跨域性,可以利用Script标签的src属性发送跨域请求,获取相应数据

<script src="域名/域名下的php文件名?callbackName=fnName"></script>
<script>
    // 回调函数
    function fnName(data){
        console.log(data);
    }
</script>

后端返回的是js代码,是函数调用

<?php $fnName = $_GET['callbackName'] 
echo $fnName.'(hello world)';
?>

jQuery-jsonp

type必须是get

$.ajax({
    url: "域名/域名下的php文件名",
    dataType: "jsonp",
    jsonp: "callbackName",  // 约定等号左边的key,服务器根据该名称获取回调函数名称
    jsonpCallback: "fnName", // 约定等号右边的value,标识回调函数名称
    success: function(){
        // todo
    },
    error: function(){
        // todo
    }
})

模仿封装jQuery-ajax

function myAjax(options) {
  // 默认值
  var defaults = {
      jsonp: "callback",
      jsopCallback: "jQuery"+ ('v3.1.1'+ Math.random()).replace(/\D/g,'')+"_"+new Date().getTime();
  };
  // window是全局对象,[]中的值可以是变量,也可以是字符串
  window[defaults.jsonpCallback] = function(data){
      defaults.success(data);
  };
  // 处理业务参数,把data数据转换为查询字符串
  var param = '';
  if(defaults.data){
      for(var key in defaults.data){
          param += key+"="+defaults.data[key]+"&";
      }
  }
  
  // 使用设置参数覆盖默认配置
  for(var key in options){
      defaults[key] = options[key];
  };
  // 处理跨域请求
  var script = document.createElement("script");
  script.src = defaults.url+"?"+ param + defaults.jsonp+"="+defaults.jsonpCallback;
  var head = document.querySelector("head");
  head.appendChild(script);
}

相关文章

  • 跨域问题

    1.jsonp jsonp详解 jsonp详解 json相信大家都用的多,jsonp我就一直没有机会用到,但也经常...

  • javasscript - 收藏集 - 掘金

    jsonp 跨域请求详解——从繁至简 - 前端 - 掘金什么是jsonp?为什么要用jsonp?JSONP(JSO...

  • jsonp详解

    title: jsonp详解tags:categories: ajax不允许跨域获取数据说明,假定后端语言是 ...

  • JSONP详解

    JSONP是json的一种使用模式,可以让网页从别的域名那获取资料,即跨域读取资料。 AJAX请求普通文件存在跨域...

  • 详解 JSONP跨域请求的实现

    详解 JSONP跨域请求的实现[https://www.cnblogs.com/zhaosq/p/10511633...

  • Git命令行操作

    ajax 和jsonp 不是一码事 细读详解 2、但ajax和jsonp其实本质上是不同的东西。ajax的核心是通...

  • jsonp原理详解

    什么是JSONP? 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来...

  • ajax 和jsonp 不是一码事 细读详解

    ajax 和jsonp 不是一码事 细读详解 由于Sencha Touch 2这种(开发)模式的特性,基本决定了它...

  • JSONP跨域详解

    0. 前言 说到AJAX就会不可避免的面临两个问题。 AJAX以何种格式来交换数据? 第二个是跨域的需求如何解决?...

  • 知识点整理

    JSON与JSONP跨域cors详解(阮一峰)flex弹性盒子Jquery怎么获取元素文档大小、偏移、位置和滚动条...

网友评论

      本文标题:jsonp详解

      本文链接:https://www.haomeiwen.com/subject/qciraftx.html