【发布时间】:2017-03-15 16:18:57
【问题描述】:
我想向我的本地服务器发送 ajax 请求,这是我的:
function getNewsFromDB() {
var httpUrl = "http://10.0.0.2:8080/Rosh/" + 'Get_News';
$.ajax({
type: 'POST',
url: httpUrl,
data: '{"MESSAGE_TYPE":"GET_NEWS","VERSION": "1","CITY":"ROSH_HAAIN"}',
dataType: 'json',
crossDomain: true,
success: function(data) {
window.alert("success");
},
error: function(xhr,textStatus,err) {
window.alert(JSON.stringify(xhr) + " ... " + textStatus + " ... " + err);
}
});
}
我还有这个服务器端代码来处理请求:
res.setContentType("application/json");
try
{
res.addHeader("Access-Control-Allow-Credentials", "true");
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader("Access-Control-Allow-Methods", "*");
res.setHeader("Access-Control-Allow-Headers", "X-Requested-With,Host,User-Agent,Accept,Accept-Language,Accept-Encoding,Accept-Charset,Keep-Alive,Connection,Referer,Origin");
res.setHeader("Access-Control-Max-Age", "8080");
res.setCharacterEncoding("utf-8");
res.getWriter().write(response);
}
catch (IOException e)
{
// TODO Auto-generated catch block
}
当我运行我的代码时,我在浏览器上看到一个对话框,上面写着: "就绪状态:0,响应文本:"",状态:0,statusText:"错误";
我不知道这个对话框是什么意思,请求还没有到达我的服务器。
我也看到了这个错误:
XMLHttpRequest 无法加载 http://10.0.0.2:8080/Rosh/Get_News。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,Origin 'http://localhost:8000' 不允许访问。响应的 HTTP 状态代码为 404。
有人知道我的代码有什么问题吗?
【问题讨论】:
-
响应没有设置
Access-Control-Allow-Origin标头。您的代码似乎包含它,因此请仔细检查您的操作是否正确。 -
服务器是如何实现的?
-
你能把它添加到答案中吗?我现在不知道如何以及在哪里添加它......
-
如果你在做本地到本地 ajax,请确保你在浏览器地址栏和 ajax url 上有相同的 url/ip
-
不确定是否重复,但是搜索一下,有很多问题要详细咨询CORS:stackoverflow.com/questions/10636611/…
标签: java jquery ajax request response