跨域与 JSONP
在 Web 开发中,浏览器出于安全考虑,默认阻止不同源(域名、端口、协议)之间的 AJAX 请求,这被称为同源策略限制。
解决跨域的常见方式
- 使用 服务器中转(推荐)
- 后端设置 CORS(Access-Control-Allow-Origin)
- 前端使用 JSONP(仅限 GET 请求)
什么是 JSONP?
JSONP(JSON with Padding)是一种绕过浏览器同源策略的跨域数据请求方式,它利用 <script> 标签不受跨域限制的特点,向服务端请求数据。
服务器响应的是一个可执行的函数调用:
callback({ name: "jQuery", type: "library" });
jQuery 中的 JSONP 使用方式
jQuery 支持通过设置 dataType: "jsonp" 发起 JSONP 请求。
$.ajax({
url: "https://api.example.com/jsonp",
dataType: "jsonp",
success: function (res) {
console.log("返回数据:", res);
},
error: function () {
console.log("跨域请求失败!");
},
});
服务端需支持并返回如:
callback({...})这样的格式。
JSONP 示例
源码
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<script>
$(function () {
$("#btnJSONP").click(function () {
$.ajax({
url: "/data.json",
dataType: "jsonp",
success: function (data) {
$("#output").text("项目名:" + data.item);
},
error: function () {
$("#output").text("跨域请求失败");
},
});
});
});
</script>
<button id="btnJSONP">发送 JSONP 请求</button>
<div id="output" style="margin-top: 10px"></div>
相关内容
- 什么是 jQuery 了解什么是 jQuery,这款流行的 JavaScript 库如何简化网页的 DOM 操作、事件处理和 Ajax 调用,帮助前端开发者高效构建交互式网页,适合初...
- 引入方式 详细介绍 jQuery 的多种引入方式,包括通过 CDN 和本地下载的方式,帮助开发者快速搭建开发环境并优化网页加载性能,适合初学者和进阶用户参考学习。
- 基本语法 介绍 jQuery 的基本语法结构,包括选择器、事件绑定和链式调用,帮助初学者快速掌握如何用简洁代码操作 DOM,提高前端开发效率。
- 基础选择器 详细讲解 jQuery 的基础选择器用法,帮助开发者轻松选中 DOM 元素,掌握 ID、类名、标签选择器等常见选择技巧,提高网页操作效率。
- 层级选择器 介绍 jQuery 层级选择器的用法,包括子元素选择器、后代选择器、兄弟选择器等,帮助开发者精准定位复杂 DOM 结构中的元素,提升操作效率。
- 过滤选择器 介绍 jQuery 过滤选择器的使用方法,包括 :first、:last、:eq、:gt、:lt 等伪类选择器,帮助开发者精准筛选符合条件的元素,提高操作灵活性...