// 使用jQuery的jsonp方法解决跨域问题
function getJsonp(url, callbackName) {
var callbackFunction = 'jsonp_callback_' + Math.random().toString().replace('.', '');
window[callbackFunction] = function(data) {
callback(data);
delete window[callbackFunction];
};
var script = document.createElement('script');
script.src = url + '?' + callbackName + '=' + callbackFunction;
document.body.appendChild(script);
function callback(data) {
// 这里处理获取到的数据
console.log(data);
}
}
// 使用示例
var url = 'http://example.com/api/data'; // 假设这是一个跨域的API接口
getJsonp(url, 'callback'); // 假设API支持JSONP并且callback参数用于指定回调函数名
这段代码定义了一个getJsonp
函数,它通过动态创建<script>
标签来请求一个支持JSONP的跨域接口。函数生成一个随机的回调函数名,并在全局window对象上注册该函数以接收数据。当JSONP响应到达时,它会调用这个回调函数,处理数据,然后删除该回调函数以避免污染全局命名空间。