JSONP(JSON with Padding)是一种跨域数据交互的解决方案,它利用了网页上<script>
标签可以跨域加载资源的特性。JSONP请求实际上是动态插入一个<script>
标签,通过指定其src
属性来加载一个跨域的JavaScript文件,这个文件包含一个回调函数,该回调函数的参数就是服务器返回的数据。
<script>
标签加载一个跨域的JavaScript文件,该文件执行一个预先定义好的回调函数,并将数据作为参数传递给这个回调函数。客户端代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSONP Example</title>
<script>
function handleResponse(data) {
console.log('跨域数据:', data);
}
</script>
<script src="http://example.com/data?callback=handleResponse"></script>
</head>
<body>
</body>
</html>
服务器端代码(Node.js示例):
const http = require('http');
http.createServer((req, res) => {
const callback = req.url.split('=')[1];
const data = { message: 'Hello, JSONP!' };
res.end(`${callback}(${JSON.stringify(data)})`);
}).listen(80, 'example.com');
随着技术的发展,现代浏览器普遍支持CORS,因此在新的项目中,推荐使用CORS来实现跨域请求。
领取专属 10元无门槛券
手把手带您无忧上云