使用Ajax发起JSONP请求
JSONP(JSON with Padding)是一种跨域请求数据的方式,可以让你在不同域的服务器上获取数据。以下是使用Ajax发起JSONP请求的示例代码:
function jsonp(url, callbackName) {
var script = document.createElement('script');
script.src = `${url}?callback=${callbackName}`;
document.body.appendChild(script);
}
// 定义一个回调函数,用于处理JSONP响应
function handleJsonResponse(data) {
console.log('Received data:', data);
}
// 发起JSONP请求
jsonp('https://example.com/api/data', 'handleJsonResponse');
// 确保服务器响应的格式如下:
// handleJsonResponse({"key": "value", ...});
在这个例子中,jsonp
函数创建了一个新的<script>
标签,并将其src属性设置为所请求的URL加上一个查询参数callback
,这个参数指定了服务器响应时应该调用的函数名。服务器端应该生成JSONP格式的响应,即一个函数调用,其中包含了你想要获取的数据。
请注意,由于安全限制,不是所有的服务器都支持JSONP请求,且JSONP不支持POST请求,只能用于GET请求。
评论已关闭