JSONP(JSON with Padding)是一种跨域数据交互的解决方案,其原理是利用了HTML中的<script>
标签没有跨域限制的特性。以下是关于JSONP的详细解释:
<script>
标签,将请求的URL指向一个跨域的JavaScript文件,这个文件返回的不是纯数据,而是一个函数调用,函数参数中包含所需的数据。<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JSONP Example</title>
</head>
<body>
<script>
function handleResponse(data) {
console.log('Received data:', data);
}
function jsonpRequest(url) {
const script = document.createElement('script');
script.src = `${url}?callback=handleResponse`;
document.body.appendChild(script);
}
// 使用示例
jsonpRequest('http://example.com/api/data');
</script>
</body>
</html>
const http = require('http');
http.createServer((req, res) => {
const callback = req.url.split('=')[1];
const data = { message: 'Hello, JSONP!' };
res.writeHead(200, { 'Content-Type': 'application/javascript' });
res.end(`${callback}(${JSON.stringify(data)})`);
}).listen(3000, () => {
console.log('Server running at http://localhost:3000/');
});
JSONP是一种利用<script>
标签特性实现跨域数据交互的方法,适用于老版本浏览器和一些简单的跨域需求。但在现代Web开发中,推荐使用CORS来实现更安全和灵活的跨域数据交互。
领取专属 10元无门槛券
手把手带您无忧上云