background image

PHP 交互:AJAX 的跨域访问-两种有效的解决方法

本文为大家分享介绍对 AJAX 的跨域访问-两种有效的解决的方法,供各位朋友参考
新的 W3C 策略实现了 HTTP 跨域访问,还亏我找了很久的资料解决这个问题:
只需要在 servlet 中返回的头部信息中添加 Access-Control-Allow-Origin 这个既可。
比如我要开放所有我本地的跨域访问,就设置如下:response.setHeader("Access-Control-
Allow-Origin", "

http://127.0.0.1/

§

*");

这样我本地的 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);
}