前端跨域之Jsonp实现原理及.Net下Jsonp的实现
2024-10-20 00:33:41
jsonp的本质是通过script标签的src属性请求到服务端,拿到到服务端返回的数据 ,因为src是可以跨域的。前端通过src发送跨域请求时在请求的url带上回调函数,服务端收到请求时,接受前端传过来的回掉函数名称,将其拼接成js函数调用返回到前端即可完成跨域请求。
前端实现代码:
<!DOCTYPE html>
<html lang="en"> <head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head> <body> </body> </html>
<script>
function successFun(data) {
console.log(data);
}
function show(data) {
console.log(data);
}
</script>
<!-- 把请求的成功的回掉函数名称通过url传参传到服务端,服务端返回时需要拼接一个函数调用返回到前端 -->
<script src="https://localhost:44381/Home/Action?cb=show"></script>
<script src="https://localhost:44381/Home/GetScript?cb=successFun"></script>
.Net服务端代码:
using System.Collections.Generic;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json; namespace Jsonp.Controllers
{
public class HomeController : Controller
{
public IActionResult Action()
{
var cb = Request.Query["cb"];
return Content(cb + "(123)");
}
public IActionResult GetScript()
{
var cb = Request.Query["cb"];
var data = new List<int>()
{
,,,,,,,,,,,,,
};
var result = $"{cb}({JsonConvert.SerializeObject(data)})";
return Content(result);
}
}
}
最新文章
- Redis常用命令入门4:集合类型
- __block修饰变量以及代码块的用法
- MySQL之权限管理
- javascript知识点总结----Function定义
- 如何在UIimageview里显示一张图片里的某一部分
- Usermod 命令详解
- C#中判断一个网址是否可以打开
- 海量jQuery插件
- Kernel Regression from Nando&#39;s Deep Learning lecture 5
- Spring-----5、Spring容器中的bean
- MYSQL select ....outfile.....from.....
- HTML5线性图表 图表数据区域可着色
- PAT (Advanced Level) 1009. Product of Polynomials (25)
- HTML5之2D物理引擎 Box2D for javascript Games 系列 第三部分之创建图腾破坏者的关卡
- 201521123081《java程序设计》 第11周学习总结
- centos7下搭建 MongoDB -01
- 【java】i++与++i、i--运算
- JMeter中Ultimate Thread Group插件使用
- 原生JavaScript运动功能系列(三):多物体多值运动
- OpenStack-Neutron-VPNaaS-配置