XMLHTTP在同源策略下是不允许跨域请求数据的,即不能从一个域(协议+主机+端口号)向另一个域请求数据。这是出于安全考虑,以防止恶意网站通过跨域请求获取用户的敏感信息。
但可以通过以下方式实现跨域请求数据:
使用CORS(跨域资源共享):服务器端允许跨域请求,在响应头中设置Access-Control-Allow-Origin字段指定允许的源。前提是浏览器支持CORS。
使用JSONP(JSON with Padding):通过动态创建script标签,将请求数据的URL作为src属性值,服务器返回的数据包裹在回调函数中返回给客户端。
使用代理服务器:在同源服务器端设置代理,向目标服务器发起请求并将响应返回给客户端。
使用WebSocket:WebSocket可以用于跨域通信,但需要服务器端支持WebSocket协议。
总之,虽然XMLHTTP自身不支持跨域请求数据,但可以通过上述方法实现跨域请求数据。