getXMLHttpRequest post如何跨域
时间: 2024-01-27 12:04:30 浏览: 132
XMLHttpRequest的跨域请求有两种方式:
1. CORS(Cross-Origin Resource Sharing)跨域资源共享
可以在服务端设置响应头,允许指定的域名或者IP地址访问。
例如,在服务端设置以下响应头:
```
Access-Control-Allow-Origin: http://www.example.com
Access-Control-Allow-Methods: POST, GET, OPTIONS
Access-Control-Allow-Headers: X-Requested-With, Content-Type
Access-Control-Max-Age: 86400
```
其中,`Access-Control-Allow-Origin`表示允许访问的域名或者IP地址,`Access-Control-Allow-Methods`表示允许的请求方式,`Access-Control-Allow-Headers`表示允许的请求头,`Access-Control-Max-Age`表示预检请求的有效期。
2. JSONP(JSON with Padding)
在客户端通过创建一个script标签,src属性指向跨域请求的URL,服务端返回一段JavaScript代码,并在代码中调用一个在客户端定义的回调函数,将数据作为参数传递给回调函数。
例如,客户端代码:
```
function callback(data) {
console.log(data);
}
var script = document.createElement('script');
script.src = 'http://www.example.com/api?callback=callback';
document.getElementsByTagName('head')[0].appendChild(script);
```
服务端返回的代码:
```
callback({"name": "Bob", "age": 20});
```
阅读全文