美文网首页
数据请求和Jsonp原理2-2019-12-26

数据请求和Jsonp原理2-2019-12-26

作者: 增商 | 来源:发表于2019-12-26 14:19 被阅读0次
跨域请求

处于安全性考虑浏览器不允许ajax直接请求数据

图片.png
如:前端网站和后端网站接口不同,前端80后端3344,这时候因为端口不同,前后端联调时更多采用jsonp=>动态创建script标签,src指向数据接口地址

插入:

这里需要平凡的用到服务端开启关闭修改app.js程序,用
node app,js显然不是很好,我们可以用nodemon


    以管理员身份运行vs code
    执行:get-ExecutionPolicy,显示Restricted,表示状态是禁止的
    执行:set-ExecutionPolicy RemoteSigned
    这时再执行get-ExecutionPolicy,就显示RemoteSigned

图片.png

Jsonp原理客户端和服务器

新建文件node-server作为模拟客户端文件app.js

初始模板配置:

var http = require('http'); //导入http内置模块
http.createServer(function (request, response) { //创建并监听端口启动注意前端要配合端口
//  response.writeHead(200, {'Content-Type': 'text/plain'});
//  response.end('Hello World');
}).listen(8081);
console.log('Server running at http://127.0.0.1:8081/');
图片.png
服务端
//代码记录
//导入http内置模块
const http = require("http");
//创建一个http服务器监听http服务器request请求
const urlModule = require("url");
http
  .createServer(function(request, response) {
    // response.writeHead(200, { "Content-Type": "text/plain" });
    // response.end("Hello World");
    // const url = request.url;
    const { pathname: url, query } = urlModule.parse(request.url, true);

    if (url === "/getscript") {
      //拼接一个合法的js脚本,这里拼接的是一个方法的调用
      // var scriptStr = "show()";
      var data = {
        name: "imycode",
        age: 1,
        gender: "boy",
        hobby: {
          sports: ["swim", "football"],
          singer: ["Zhou jay", "JJ"],
          song: ["moonlight", "随便"]
        }
      };

      var scriptStr = `${query.callback}(${JSON.stringify(data)})`;
      //res.end发送给客户端,客户端去把这个字符串当作js代码解析
      response.end(scriptStr);
    } else {
      response.end("404");
    }
  })
  .listen(3000);

console.log("Server running at http://127.0.0.1:3000/");

课程P34_Day 2_19 记录

详解:json对象转化成json字符串拼到模板里去

图片.png
图片.png
图片.png

客户端请求服务端,服务端可以返回一个方法名调用,当然这个方法如果写死可以写到具体请求哪个方法,但是能写死吗?如果不写死

来看结构赋值:
 const { pathname: url, query } = urlModule.parse(request.url, true);
//1. const {}
//2. 
图片.png

客户端通过一个url地址请求服务器

  1. 在这里,我们先弄个简单的案例,
图片.png
//客户端代码,随便建一个html
 <script>
      function show() {
        // console.log(data);
        console.log("ok");
        
      }
    </script>
    <script src="http://127.0.0.1:3000/getscript"></script>
const http = require("http");
http.createServer(function(request, response) {
    const url = request.url;

    if (url === "/getscript") {

      var scriptStr = "show()";
      response.end(scriptStr);

    } else {
      response.end("404");
    }
  })
  .listen(3000);

console.log("Server running at http://127.0.0.1:3000/");
图片.png

以上的例子是,


图片.png
图片.png
图片.png

客户端请求js文件,服务器监听完返回合法的js文件


图片.png
图片.png

相关文章

  • 数据请求和Jsonp原理2-2019-12-26

    跨域请求 处于安全性考虑浏览器不允许ajax直接请求数据图片.png如:前端网站和后端网站接口不同,前端80后端3...

  • js跨域

    jsonp 原理:JSONP 利用 元素的这个开放策略,网页可以得到从其他来源动态产生的JSON数据,而这种使用...

  • javascript和jQuery分别实现jsonp跨域请求

    本文以豆瓣网上的接口数据为例演示jsonp的跨域请求,具体实现原理不再赘述,不懂得请先百度jsonp的原理后再来看...

  • vue音乐APP03:jsonp promise化

    1.JSONP的用途和原理 使用JSONP主要是目的通过动态创建Script,动态拼接url,进而抓取数据,实现跨...

  • 跨域解决方式

    JSONP实现跨域 原理:网页通过添加一个 元素,向服务器请求JSON数据,这种做法不受同源政策限制;服务器收到请...

  • jsonp原理

    模拟jsonp原理 servlet 测试 http://localhost/jq/jsonp.jsp JSONP ...

  • 跨域上传图片并预览

    跨域上传文件 之前解决跨域问题都是使用的JQuery的JSONP类型的Ajax请求,JSONP原理是让服务器把数据...

  • jsonp的原理

    jsonp的原理

  • 封装jsonp+promise实现跨域「 音乐接口」

    jsonp原理 通过动态创建 标签,src指向数据地址,其中callback参数作为函数名来包裹住JSON数据返回...

  • 2020-03-29

    1.解释jsonp的原理,以及为什么不是真正的ajax Jsonp并不是一种数据格式,而json是一种数据格式,j...

网友评论

      本文标题:数据请求和Jsonp原理2-2019-12-26

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