PHP 交互:AJAX 的跨域访问-两种有效的解决方法
本文为大家分享介绍对 AJAX 的跨域访问-两种有效的解决的方法,供各位朋友参考
新的 W3C 策略实现了 HTTP 跨域访问,还亏我找了很久的资料解决这个问题:
只需要在 servlet 中返回的头部信息中添加 Access-Control-Allow-Origin 这个既可。
比如我要开放所有我本地的跨域访问,就设置如下:response.setHeader("Access-Control-
Allow-Origin", "
*");
这样我本地的 A 工程中的 AJAX 请求就可以跨域请求 B 工程中的 servlet。
代码如下:
HTML 的 JS 的 ajax 请求:
代码如下:
/* Create a
new
XMLHttpRequest object to talk to the Web server */
var
xmlHttp = false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
@end @*/
if
(!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp =
new
XMLHttpRequest();
}
var
url = "
http://127.0.0.1:2012/esb/servlet/HttpClient?randomType=MIX
";
xmlHttp.open("GET", url, true);
//Setup a function for the server to run when it's done
xmlHttp.onreadystatechange =
function
(){
if
(xmlHttp.readyState == 4) {
var
response = xmlHttp.responseText;
alert(response);
}