当前位置: 首页 > news >正文

json-server,跨域

启动json-serer

json-server --watch db.json

注意: db.json为json文件的名称,你自己的文件名叫什么,就启动对应的文件就可以了 启动json-server的时候,必须在你db.json所在的文件夹下进行启动

这样服务器就可以启动成功了,可以通过配置db.json文件,访问服务器里面的数据 访问地址:127.0.0.1:3300/student

使用json-sever实现增删改查

1.get 查找

http://localhost:3000/student(资源名)/id

2.post 添加 

http://localhost:3000/student   不需要id ,会自动添加 

3.put  修改    使用put修改会覆盖之前原有的数据,仅有修改后的数据   

              patch 部分修改    只会修改你要修改的数据,原有数据不变                                                   4.delete 删除     只需要 传递要删除的端口号 

        http://localhost:3000/student(资源名)/id  

跨域 

协议(http,https),端口号,域名只要有一个不一样就是跨域 

http 默认端口号80  https默认端口号443 

    jsonp跨域 

前端发送请求 后端配合回调函数 好处:

  1. javascript 兼容性比较好

  2. 不需要服务器支持,直接在本地运行

缺点:

  1. 它只支持GET请求而不支持POST等其它类型的HTTP请求

  2. 它只支持跨域HTTP请求这种情况,不能解决不同域的两个页面之间如何进行JavaScript调用的问题。

  3. jsonp在调用失败的时候不会返回各种HTTP状态码。

  4. 安全性。万一假如提供jsonp的服务存在页面注入漏洞,即它返回的javascript的内容被人控制的。那么结果是什么?所有调用这个 jsonp的网站都会存在漏洞。于是无法把危险控制在一个域名下…所以在使用jsonp的时候必须要保证使用的jsonp服务必须是安全可信的

 jsonp请求

前端

<input type="text"> <button>点击</button>
var btn = document.querySelector('button');
btn.onclick = function(){var val = document.querySelector('input').value;// 1. 创建script标签var scriptM = document.createElement('script');// 2. 添加src属性scriptM.src = `http://suggest.taobao.com/sug?code=utf-8&q=${val}&callback=success`;// 3. 添加到body标签中document.body.appendChild(scriptM);
}function success(data){console.log(data.result); 
}

后端

$val = $_GET['cb'];
$data = '{"code":1,"msg":"ok","data":[{"uname":"jack","class":"java"},{"uname":"rose","class":"ui"},{"uname":"bob","class":"鸿蒙"},{"uname":"张三","class":"java"}]
}';
echo $val."(".$data.")"; // abc();

             

补充url 对象

  1. URL的编码/解码方式

        JavaScript 提供四个 URL 的编码/解码方法。

  • encodeURI()

  • encodeURIComponent()

  • decodeURI()

  • decodeURIComponent()

1.encodeURI()方法用于转码整个 URL。它的参数是一个字符串,代表整个 URL。它会将元字符和语义字符之外的字符,都进行转义

encodeURI('http://www.example.com/q=春节')
// "http://www.example.com/q=%E6%98%A5%E8%8A%82"

2。encodeURIComponent()

encodeURIComponent()方法用于转码 URL 的组成部分,会转码除了语义字符之外的所有字符,即元字符也会被转码。所以,它不能用于转码整个 URL。它接受一个参数,就是 URL 的片段

encodeURIComponent('春节') 
// "%E6%98%A5%E8%8A%82" 
encodeURIComponent('http://www.example.com/q=春节') 
// "http%3A%2F%2Fwww.example.com%2Fq%3D%E6%98%A5%E8%8A%82" 1234

3.decodeURI()

decodeURI()方法用于整个 URL 的解码。它是encodeURI()方法的逆运算。它接受一个参数,就是转码后的 URL。

decodeURI('http://www.example.com/q=%E6%98%A5%E8%8A%82') 
// "http://www.example.com/q=春节" 12

4。decodeURIComponent()

decodeURIComponent()用于URL 片段的解码。它是encodeURIComponent()方法的逆运算。它接受一个参数,就是转码后的 URL 片段

decodeURIComponent('%E6%98%A5%E8%8A%82') // "春节"

http://www.lryc.cn/news/458064.html

相关文章:

  • 【Conda】修复 Anaconda 安装并保留虚拟环境的详细指南
  • 转行高薪 AI 产品经理,快速入门方法在此处
  • 初识环境变量
  • 成像基础 -- 景深计算
  • Git中从dev分支恢复master分支
  • 12.5 Linux_进程间通信_信号灯
  • Linux——cp-mv-rm命令
  • 上升点列
  • 刷题 链表
  • SQL 语法学习指南
  • 低代码可视化-uniapp商城首页小程序-代码生成器
  • Vue3 富文本:WangEditor
  • Unity实现自定义图集(四)
  • k8s-pod的管理及优化设置
  • 软件测试面试题大全
  • SQL第16课挑战题
  • Python3 爬虫 中间人爬虫
  • Leetcode 50. Pow ( x , n ) 快速幂、取模 C++实现
  • Java SE vs Java EE 与 JVM vs JDK vs JRE
  • Linux YUM设置仓库优先级
  • 做一个不断更新的链接库
  • Ping32企业加密软件:保护数据安全
  • 【Java】异常的处理-方式【主线学习笔记】
  • React modal暴露ref简洁使用
  • 小米路由器ax1500+DDNS+公网IP+花生壳实现远程访问
  • 毕设分享 大数据用户画像分析系统(源码分享)
  • 使用 Redis 实现分布式锁:原理、实现与优化
  • Android常用C++特性之std::make_pair
  • Kafka-参数详解
  • Docker Overlay2 空间优化