这是错误信息:"XMLHttpRequest cannot load http://125.135.136.111/testApp/login.jsp. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://127.0.0.1:8020' is therefore not allowed access."
因为第一次写web项目,不是很懂。。请各位指教,谢谢!
我想请问创建web项目时,是不是要设置服务器端口?怎么设置呢?默认的是http://127.0.0.1:8020这个端口,可不可以更改?
这是js中的代码:
$(function(){
$('#login_btn').click(function(){
var pwdRegex = /^\w{6,20}/; //密码正则
if($('#username').val() == ''){
window.alert("请输入用户名!");
$('#email').focus();
}else if($('#password').val() == ''){
window.alert("请输入密码!");
$('#password').focus();
}else if(!pwdRegex.test($('#password').val())){
window.alert("密码不正确!");
$('#password').focus();
}else{
window.alert("登录中...");
// 创建XMLHttpRequest对象
var xmlhttp;
if (window.XMLHttpRequest){
xmlhttp=new XMLHttpRequest();
}else{
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function(){
if (xmlhttp.readyState==4 && xmlhttp.status==200){
window.alert(xmlhttp.responseText);
}
}
xmlhttp.open("GET", "http://125.138.147.111/testApp/login.jsp", true);
xmlhttp.send();
}
});
});
是的,没有指定端口,创建Web项目不需要设置端口,如果需要修改可以在tomcat目录下 conf/server.xml中修改默认是8080,你的是8020就在server.xml中找到8020修改之后重启tomcat。
如果你是外网访问需要查看访问地址通不通,如125.135.136.111有没有开放8020端口,测试基本在本地测试直接写127.0.0.1:8020/项目名...
不过你这访问的是页面吧...
你这应该是需要自动获取基本地址的,代码如下:
<%
String basePath = request.getContextPath();
%>
basePath可能等于http://127.0.0.1:8020,接下来就加一些固定的路径
这样你将来部署的时候就不用改代码了
是不是没加头
xhr.setRequestHeader("Content-type","application/json");
看情况应该是跨域了,你的两个IP不一样
跨域的问题,,在servlet里面加入
resp.addHeader("Access-Control-Allow-Origin", "*");
resp.addHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
ServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin", "*");
跨域问题,发送请求的页面是8020端口那个html,请求的是另一个地址内容。
简单的解决方法啊,把hbuild那个项目直接放到tomcat(你的服务器的webapps文件夹下)。
如果是访问的远程的服务器的话,后台返回内容时需要添加 楼上JSXHMQS,写的内容。
跨域了,搜Access-Control-Allow-Origin,找解决方案
是跨域问题,前端请求的时候用jsonp的方式,可以直接使用jQuery要简单一点http://blog.csdn.net/admin_yi/article/details/54095767