JSONP(JSON with Padding)是一种跨域数据交互的技术,其基本原理是利用script标签不受同源策略限制的特点,将数据包裹在函数调用中作为参数传递。 在使用JSONP时,我们需要在客户端(如JavaScript)提供一个回调函数的名称,服务器端在返回数据时,会将数据包裹在这个回调函数中,然后客户端就可以通过执行这个函数来获取数据。 例如,假设我们有一个服务器端的API,返回的数据如下: ```json { "name": "John", "age": 30 } ``` 我们可以通过以下方式使用JSONP: ```javascript function handleResponse(response) { console.log(response.name, response.age); } var script = document.createElement('script'); script.src = 'https://example.com/api?callback=handleResponse'; document.body.appendChild(script); ``` 在这个例子中,我们定义了一个名为`handleResponse`的函数,然后在`script`标签的`src`属性中,指定了服务器端的API的URL,并添加了一个`callback`参数,其值为`handleResponse`。服务器端在返回数据时,会将数据包裹在`handleResponse`函数中,然后客户端就可以通过执行`handleResponse`函数来获取数据。 注意,由于JSONP是利用script标签不受同源策略限制的特点实现的,因此只能用于获取数据,不能用于发送数据。由于JSONP需要动态创建script标签,因此可能会带来一些安全问题,如XSS攻击。 [2023-11-07 22:22:07 | AI小红书种草文 | 317点数解答]