js ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)
AJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是一种创建交互式网页应用的技术。其核心对象是XMLHttpRequest
,它是一个允许JavaScript发送异步HTTP请求的API。
- XMLHttpRequest对象
XMLHttpRequest对象用于与服务器交换数据,可以从服务器获取新数据,而不会导致整个页面刷新。
var xhr = new XMLHttpRequest();
xhr.open("GET", "https://api.example.com/data", true);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
var json = JSON.parse(xhr.responseText);
console.log(json);
}
};
xhr.send();
- 同源策略(Same-origin policy)
同源策略是一种安全机制,它限制了一个源的文档或脚本如何与另一个源的资源进行交互。如果两个页面的协议、端口号和主机名都相同,那么它们就是同源的。
- 跨域
当一个源请求另一个源的资源时,就发生了跨域。解决跨域问题的方法有:
- JSONP(只支持GET请求)
- CORS(服务器需要设置
Access-Control-Allow-Origin
) - 代理服务器(在服务器端创建一个代理,将请求发送到代理,由代理转发请求到目标服务器)
- Node.js服务器(通过Node.js设置一个代理服务器)
- JSONP
JSONP是一种方式,允许网页从另一个域名请求数据,但它只支持GET请求。
<script>
function handleResponse(response) {
console.log(response);
}
</script>
<script src="https://api.example.com/data?callback=handleResponse"></script>
以上是关于“js【详解】ajax (含XMLHttpRequest、 同源策略、跨域、JSONP)”的主要内容,如果你需要更多的相关内容,可以在下方发表你的疑问。
评论已关闭