jsonp的工作原理

Lonelyexistence,lonelyburning      2022-02-14     314

关键词:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--
             src 属性他自带有跨域功能,浏览器没有限制。
    -->
    <script>
        function jsonp(info) {
            //已经帮我转成对象。
            console.log(info);
        }

        /*
         * 我的目的是什么:
         *   http://www.baidu.com/asdfsadf/asdf.php
         *   然后这个地址返回,我想把这个返回的数据获取。
         *   我的目的是获取第三方网站的资源数据。
         *
         * */
    </script>
    <!--
           这个标签没有跨域的限制,浏览器没有对这个标签进行一个禁用。

           jQuery
           //之前这段代码是写在http://www.wu.com
           $.ajax({
               url:"http://www.baidu.com/asdfasdfasdf",
               type:"get",

               success:function(){

               }
           })
           //假设没有加dataType:jsonp
           //这个jQuery 底层默认是去发送一个XMLHttpRequest 的请求
           //但是请求的资源是http://www.baidu.com 的资源 ,直接跨域的。
           //现在我是dataType:jsonp
           //jQuery 底层 var srcipt=document.createElement("srcipt");
           //srcipt.src="http://www.baidu.com" //跨域
    -->
    <script src="http://api.wu.com/api/04jsonp1.php?callback=jsonp"></script>
</head>
<body>
</body>
</html>







 

跨域:
      我在www.xiaoyanzi.com 站点下面的一个页面想去访问  http://www.baidu.com 下面的一个资源.
      http://www.xiaoyanzi.com   a.html
      http://www.baidu.com  b.html

      1:document
      a.html 想访问b.html 下面的元素  顶级域名都不一样。

      http://www.xiaoyanzi.com   a.html
      http://api.xiaoyanzi.com   b.html  主域名一样。

      a.html 想访问b.html 默认不允许。
      同源:域名,端口,协议必须一样。
      (不同源就跨域)
      但是主域名都一样。
      所以我怎么去解决这个跨域的问题。
      http://www.z.com   a.html 使用js 添加一个document.domian ="zhuwu.com";
      http://api.z.com   b.html 使用js 添加一个document.domian ="zhuwu.com";
       2:ajax 跨域
       在http://www.z.com  有一个a.html 想去访问http://www.baidu.com/afads.php
 有跨域的特性。(浏览器觉得会有安全问题。)
       a.html
       $.ajax({
            url:"http://www.baidu.com",
            type:"",
       })
       请求可以发送出去,数据回不来。
         $.ajax({
                    url:"http://www.baidu.com",
                    type:"",
                    dataType:"jsonp",

       })
       底层的原理
       在jQuery 的参数不加   dataType:"jsonp",
       默认是发送一个xmlHttpRequest 请求,使用这个对象去发送请求。你浏览器根本就接收不到数据。
       添加了:dataType:"jsonp",
       jQuery 里面
       var script=document.createElement("script");
       script.src="http://www.baidu.com/demo.js";

跨域访问是我们以后比较常见的操作:
       1: 在我的网站下面去访问一些其它网站提供的一些服务。
       2: 天气预报,查询机票,查询火车票。 查询ip 地址。电话号码归属地

 









jsonp的工作原理是什么?

利用<script>标签没有跨域限制的“漏洞”来达到与第三方通讯的目的。当需要通讯时,本站脚本创建一个<script>元素,地址指向第三方的API网址,形如:<scriptsrc="http://www.xxxx.com/index.php?par1=1&bar2=2"></script>并提... 查看详情

jsonp原理解析

前言我工作以来接触的第一个项目就是前后端分离的,前端静态文件有自己独立域名,通过接口来获取数据进行渲染等操作。跨域的方法不需要多言,随便一搜,就有很多,但最常用不外乎jsonp和CORS。jsonp着重于前端,也算是前... 查看详情

ajax解决跨域--jsonp原理(代码片段)

...员的聪明才智开发出来,只支持get请求。1.2JSONP怎么工作的?在网页有一些标签天生具有跨域能力,比如:imglinkiframescript。JSONP就是利用script标签的 查看详情

jsonp的原理和实现

...部分组成。简单点说,jsonp是一种跨域通信的手段,它的原理其实很简单:首先是利用s 查看详情

jsonp原理详解

什么是JSONP? 先说说JSONP是怎么产生的: 其实网上关于JSONP的讲解有很多,但却千篇一律,而且云里雾里,对于很多刚接触的人来讲理解起来有些困难,着用自己的方式来阐释一下这个问题,看看是否有帮助。 1、一... 查看详情

原生javascript里jsonp的实现原理

ajax不能跨域,jsonp可以跨域跨域的核心思想:     调用(拿到的接口),定义(jsonp核心处理器)分别是不同的script标签里面进行跨script取数据(只有get方式进行取数据) jsonp传进来的数据是{url:‘‘,data:{ ... 查看详情

jsonp的原理

jsonp是怎麽產生的呢?1、一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。2、不过我们又发现,Web页面上调用js文件时则不受是... 查看详情

jsonp原理,怎样实现跨域?

什么是JSONP? JSONP和JSON的关系又是什么呢?JSON(JavaScriptObjectNotation)和JSONP(JSONwithPadding)虽然只有一个字母的差别,但其实他们根本不是一回事儿:JSON是一种数据交换格式,而JSONP是一种依靠开发人员的聪明才智创造出的一种非... 查看详情

jsonp原理详解

先说说JSONP是怎么产生的:一个众所周知的问题,Ajax直接请求普通文件存在跨域无权限访问的问题,甭管你是静态页面、动态网页、web服务、WCF,只要是跨域请求,一律不准。不过我们又发现,Web页面上调用js文件时则不受是否... 查看详情

跨域jsonp原理及调用详细演示样例

...:JSONP和CORS。 那这篇博客就介绍JSONP方式。 JSONP原理  在同源策略下,在某个server下的页面是无法获取到该server以外的数据的,但img、iframe、script等标签是个例外。这些标签能够通过src属性请求到其它server上的数... 查看详情

原生javascript里jsonp的实现原理

ajax不能跨域,jsonp可以跨域跨域的核心思想:     调用(拿到的接口),定义(jsonp核心处理器)分别是不同的script标签里面进行跨script取数据(只有get方式进行取数据) jsonp传进来的数据是{url:‘‘,data:{ ... 查看详情

ajax与jsonp

...新加载整个网页的情况下,能更新部分网页的技术。2、工作原理  A、ajax就是js通过一个网站去加载数据,这个过程通常是用户不可见的。  B、传统的网页(不适用ajax)如果需要更新内 查看详情

前端跨域之jsonp实现原理及.net下jsonp的实现

jsonp的本质是通过script标签的src属性请求到服务端,拿到到服务端返回的数据,因为src是可以跨域的。前端通过src发送跨域请求时在请求的url带上回调函数,服务端收到请求时,接受前端传过来的回掉函数名称,将其拼接成js函... 查看详情

深入理解jsonp原理——前端面试

JSON和JSONP虽然只有一个字之差,但是它们俩是八竿子打不着的:JSON是一种数据交换格式,JSONP是非正式的跨域数据交换协议。为什么说JSONP是非正式的传输协议呢?因为它就是利用了<script>标签没有跨域限制这一“漏洞”来... 查看详情

jsonp详细原理之一

/*script标签是不存在跨域请求的,类似的还有img,background:url,link 你可以想象一下,平时的这些标签都是可以直接引入外部资源的,所以是不存在跨域问题的*/functiongetData(res){ console.log(res.data); } /*这里创建一个JS标签,相当于... 查看详情

jsonp原理

HTML中script标签可以加载其他域下的js,比如我们经常引入一个其他域下线上cdn的jQuery。那如何利用这个特性实现从其他域下获取数据呢?可以先这样试试:<scriptsrc="http://api.jirengu.com/weather.php"></script>这时候会向天气接口... 查看详情

jsonp原理及实现(代码片段)

JSONP原理及实现1概述2优点3缺点4实现1概述JSONP是是一种跨域通信的手段,它可以让网页从别的域名(网站)中获取数据,即跨域读取数据,兼容性好,但是只能处理GET请求。它的原理是利用script标签的src属... 查看详情

对 JSONP 请求的工作方式感到困惑

】对JSONP请求的工作方式感到困惑【英文标题】:ConfusedonhowaJSONPrequestworks【发布时间】:2012-04-2821:39:01【问题描述】:我无法理解jsonp请求如何工作的细节。我已经阅读了包括jsonp上的wiki在内的几个来源,但对于在进行jsonp调用... 查看详情