使用原生JavaScript创建一个XMLHttpRequest对象,然后发送一个POST请求到地址http://192.168.100.109:986。在请求完成后,会根据状态码和响应数据更新页面上一个id为message的元素的内容。设置跨域请求相关的参数,怎么允许跨域
时间: 2024-02-09 18:09:08 浏览: 151
要允许跨域请求,需要在发送请求之前设置XMLHttpRequest对象的相关属性。以下是一个示例代码:
```javascript
const xhr = new XMLHttpRequest();
xhr.withCredentials = true; // 允许发送cookie
xhr.open('POST', 'http://192.168.100.109:986');
xhr.setRequestHeader('Content-Type', 'application/json'); // 设置请求头
xhr.onreadystatechange = function() {
if (this.readyState === this.DONE && this.status === 200) {
var response = JSON.parse(xhr.responseText);
var message = document.getElementById('message');
message.textContent = 'yes';
} else {
var message = document.getElementById('message');
message.textContent = 'NO';
}
};
xhr.send(JSON.stringify({param1: 'value1', param2: 'value2'}));
```
在上述代码中,设置了`xhr.withCredentials`为`true`,表示允许发送cookie;设置了请求头`xhr.setRequestHeader('Content-Type', 'application/json')`,表示请求体的格式是JSON类型。同时,还需要在服务器端进行相应的配置,才能允许跨域请求。例如,在响应头中添加`Access-Control-Allow-Origin`字段,指定允许跨域的源地址。
需要注意的是,由于存在跨域安全问题,浏览器会对跨域请求进行拦截。如果服务器没有进行相应的跨域配置,请求可能会被拦截导致请求失败。
阅读全文