jsonp为什么不是ajax
时间: 2023-03-25 20:00:58 浏览: 78
jsonp不是ajax,因为它使用的是一种不同的数据交换格式。Ajax使用XMLHttpRequest对象来发送和接收数据,而jsonp使用动态创建的script标签来获取数据。此外,jsonp还需要服务器端支持,因为它需要在服务器端生成一个回调函数来处理返回的数据。
相关问题
为什么jsonp不是真正的Ajax?
JSONP(JSON with Padding)是一种跨域数据请求的方法,它利用了 HTML 中 script 标签可以跨域请求资源的特性。JSONP 通过在请求资源的 URL 中添加一个回调函数名,让服务器返回一个类似于 JavaScript 函数调用的响应,以此来实现跨域数据请求。虽然 JSONP 可以实现跨域数据请求,但它并不是真正的 Ajax。
Ajax(Asynchronous JavaScript and XML)是一种在不刷新整个页面的情况下,通过 JavaScript 发送 HTTP 请求并获取响应数据的技术。Ajax 可以实现异步的数据请求和响应,而且可以将响应数据以任意格式返回,包括 JSON、XML、HTML 等。相比之下,JSONP 只能返回 JSON 格式的数据,并且不能实现真正的异步请求,因为它依赖于浏览器对于 script 标签的解析和执行。因此,虽然 JSONP 能够实现跨域数据请求,但它并不是真正的 Ajax。
jsonp和ajax的请求
jsonp和ajax都是用于从客户端向服务端请求数据的方法,但它们有一些不同之处。
相同点:
- 使用的目的一致,都是客户端向服务端请求数据,将数据拿回客户端进行处理。
不同点:
- ajax是一种官方推出的请求方式,通过xhr对象去实现,而jsonp是民间发明,使用script标签实现的请求。
- ajax是一个异步请求,而jsonp是一个同步请求。
- ajax存在同源检查,而jsonp不存在同源检查,因此后端无需做解决跨域的响应头。
- ajax支持各种请求的方式,而jsonp只支持GET请求。
- ajax的使用更加简便,而jsonp的使用较为麻烦。