实现Ajax跨域请求的jsonp
时间: 2024-02-21 07:30:41 浏览: 25
jsonp是一种跨域请求的解决方案,它利用了script标签的跨域特性来实现。
具体实现步骤如下:
1. 在客户端定义一个回调函数,并将该函数名作为参数传递给服务端。
2. 服务端接收到请求后,将数据包装在函数调用中返回给客户端,并在返回的数据前加上回调函数名。
3. 客户端接收到响应后,会自动执行回调函数,并将响应数据作为参数传入回调函数中。
示例代码:
客户端:
```
function handleResponse(data) {
// 处理响应数据
}
var script = document.createElement('script');
script.src = 'http://example.com/data.php?callback=handleResponse';
document.body.appendChild(script);
```
服务端:
```
<?php
$data = array('name' => '张三', 'age' => 20);
$json = json_encode($data);
$callback = $_GET['callback'];
echo $callback . '(' . $json . ')';
?>
```
上述代码中,客户端通过创建一个script标签向服务端请求数据,并将回调函数名作为参数传递给服务端。服务端接收到请求后,将数据包装在回调函数调用中返回给客户端。客户端接收到响应后,会自动执行回调函数handleResponse,并将响应数据作为参数传入回调函数中。
需要注意的是,jsonp只支持GET请求,并且返回的数据必须是JSON格式的。