资讯专栏INFORMATION COLUMN

JSONP解析--可运行的代码

qujian / 1826人阅读

摘要:考虑到安全问题,一个域名的只能发起对自己的域名的请求,否则就是跨站的,这是不被允许的。有人因此出,利用这一个特点即可发起跨站的脚本请求,并传递跨站数据给客户端。此时,站返回的数据已经成功的传递给了站的客户端。

考虑到安全问题,一个域名的js只能发起对自己的域名的请求,否则就是跨站的,这是不被允许的。但是,标签script内加载的脚本是不受此限制的。有人因此hack出JSONP,利用这一个特点即可发起跨站的脚本请求,并传递跨站数据给客户端。本文对此技术验证。

我们会创建两个node服务,分别为8081、8082两个端口,扮演当前站点和跨域站点。假设我从服务器A加载一个HTML文件,文件内通过脚本标签发起对跨域站点B的请求。B站希望返回数据{msg:1}给A站的客户端。

A站点。服务器文件home.js,提供静态首页服务
    var express = require("express");
    var app = express();
    var path = require("path")
    var public = path.join(__dirname, "public")
    app.use("/",express.static(public))
    var server = app.listen(8081, function () {
      console.log("home site started ")
    })
    
B站点。提供JSONP服务。文件名为:cors.js
    var express = require("express");
    var app = express();
    app.get("/jsonp/:callback",function (req, res) { 
      var callback = req.params.callback
      console.log(callback)
      res.end(callback+"({msg:1})");
    })
    var server = app.listen(8082, function () {
      console.log("CORS Server started")
    })
其首页index.html:
  

启动服务器
   node home.js
   node cors.js

访问localhost:81,看到一个对话框显示1。此时,B站返回的数据已经成功的传递给了A站的客户端。

完成。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/91327.html

相关文章

  • AJAX学习笔记 - 通讯格式

    摘要:本文章记录本人在深入学习中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。格式数据极其的冗长。但是使用格式还是可能比实际的数据占用更多的空间。该字符串通过或者转换为一个本地的对象。 本文章记录本人在深入学习Javascirpt AJAX中看书理解到的一些东西,加深记忆和并且整理记录下来,方便之后的复习。 避免使用 XML 没有哪种格式从始至终比其他格...

    番茄西红柿 评论0 收藏0
  • 关于ajax,json以及jsonp

    摘要:中间部分由或多个以,分隔的关键字值对构成,关键字字符串和值之间以分隔数组结构以开始,结束。 Q:AJAX以何种格式来交换数据?跨域的需求如何解决? A:用JSON来传数据,靠JSONP来跨域(具体参见下文) AJAX 创建对象 AJAX = Asynchronous(英[eɪˈsɪŋkrənəs]) JavaScript and XML(异步的 JavaScript 和 XML)。...

    alighters 评论0 收藏0
  • 利用Jsonp实现跨域请求,spring MVC+JQuery

    摘要:惯例上浏览器提供回调函数的名称当作送至服务器的请求中命名查询参数的一部分,例如服务器会在传给浏览器前将数据填充到回调函数中。 1 什么是Jsonp? JSONP(JSON with Padding)是数据格式JSON的一种使用模式,可以让网页从别的网域要数据。另一个解决这个问题的新方法是跨来源资源共享。 由于同源策略,一般来说位于www.42du.cn的网页无法与不是 www.42du...

    xiangzhihong 评论0 收藏0
  • PHP笔试面试题精选(一)

    摘要:,跨站脚本攻击。实际发的请求就是,用于表示这是一个请求。,用于告知服务器根据这个参数获取回调函数的名称,通常约定就叫。,回调函数的名称,也是前面参数的值,可省略,会自动生成。 本次课程主要围绕 PHP 面试和笔试中经常会出现的一些知识点,但是面试官会在笔试题基础上深入扩展,那么你知道如何更好的回答让面试官满意吗?题目收集自腾讯,迅雷,美图等公司的笔试面试题,以及本人面试经历中印象中的知...

    JohnLui 评论0 收藏0
  • 关于javascript跨域及JSONP原理与应用

    摘要:因为同源策略的限制,我们不能在与外部服务器进行通信的时候使用。这个是跨域服务器取数据的接口,参数为回调函数的名字,返回的格式为原理首先在客户端注册一个然后把的名字传给服务器。 一、同源策略 同源策略,它是由Netscape提出的一个著名的安全策略,现在所有的可支持javascript的浏览器都会使用这个策略。 为什么需要同源策略,这里举个例子: 假设现在没有同源策略,会发生什么事...

    CoderBear 评论0 收藏0

发表评论

0条评论

qujian

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<