header("Access-Control-Allow-Origin: http://localhost:8080");
sleep(3);
header("Content-type:text/html;charset=utf-8");
$username = $_POST['name'];
$pass = $_POST['pass'];
$arr["success"] =1;echo json_encode($arr);?>
关键:
header("Access-Control-Allow-Origin: http://localhost:8080");
加这个header就可以让你的请求顺利跨域了,注意参数值必须是准确的域名,不能直接
header("Access-Control-Allow-Origin: *"); //这样是不行的,因为标准规范说不允许广泛匹配
我在localhost:8000的webpack-dev-server,请求本地的php server localhost:80/data/login.php
var url = "http://127.0.0.1/data/login.php";
var cont={};
cont.name = name;
cont.pass = pass;
var result=0;//ajax请求是否正确
$.ajax({
url:url,
type:'post',
dataType:'json',
data:cont,
success:function(data){
result = data.success;
console.log("error result=",result);
window.location.href="/#/info";
},
error:function(data){
result = data.success;
console.log("error result=",result);
}
});
console.log("ajax quest done!")
测试这样设置Firefox/Chrome/IE都可以正常访问!!!
至于网上说的Firefox设置about:config,还有在ajax open 方法前运行一行代码那都是扯淡,完全不能用(也可能是高级版本为案例,已经禁用这样的方法)!!!
大家有需要可能试一下这样的写法!!!!