原生js解决ajax跨域
时间: 2023-07-16 12:13:46 浏览: 92
解决ajax跨域问题
在原生 JavaScript 中,可以使用 JSONP(JSON with Padding)来解决跨域问题。
JSONP 原理是利用 `<script>` 标签没有跨域限制的漏洞。通过动态创建 `<script>` 标签,向服务器请求 JSON 数据,服务器收到请求后,将数据放在一个指定名字的回调函数中传回来。
以下是一个简单的例子:
```javascript
function jsonp(url, callback) {
const script = document.createElement('script');
script.src = url + '?callback=' + callback;
document.body.appendChild(script);
}
// 使用示例
jsonp('http://example.com/data', 'handleData');
function handleData(data) {
console.log(data);
}
```
在这个例子中,我们通过 `jsonp` 函数向 `http://example.com/data` 发送一个 JSONP 请求,并指定回调函数名为 `handleData`。服务器返回的数据将会被包裹在一个名为 `handleData` 的函数中,然后通过动态创建 `<script>` 标签的方式执行这个函数,从而获取到数据。
需要注意的是,服务器需要支持 JSONP 格式的返回数据,并且返回的数据必须被包裹在指定的回调函数中。此外,JSONP 不支持 POST 请求,只能使用 GET 请求。
阅读全文