jQuery cors ajax请求失败

时间:2013-11-21 16:43:03

标签: java jquery ajax servlets cors

我正在尝试使用jQuery向同一台机器中的另一个端口发出cors ajax请求,下面是我的代码(我的应用程序在端口80上的appache服务器上运行):

JS:

$(function(){
    jQuery.support.cors = true;
    $.ajax({
        type: "POST",
        url: "http://127.0.0.1:8080/sys_monitor/ccn",
        dataType: "text",
        contentType: "text/plain",
        data : {a: '11'},
        success : function(res){
            alert(res);
            $('#stage').html(res);
        },
        error : function(jqXHR, text, exception){
            if (jqXHR.status === 0) {
                alert ('Not connected.\nPlease verify your network connection.');
            } else if (jqXHR.status == 404) {
                alert ('The requested page not found. [404]');
            } else if (jqXHR.status == 500) {
                alert ('Internal Server Error [500].');
            } else if (exception === 'parsererror') {
                alert ('Requested JSON parse failed.');
            } else if (exception === 'timeout') {
                alert ('Time out error.');
            } else if (exception === 'abort') {
                alert ('Ajax request aborted.');
            } else {
                alert ('Uncaught Error.\n' + jqXHR.responseText);
            }
        }
    });
        });

在端口8080上运行在tomcat(eclipse)上的Servlet(“post”写入控制台):

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.getWriter().write("hello there");
    System.out.println("post");
}

使用firebug我可以看到请求(响应代码200)和内容长度11(空结果选项卡),但错误函数正在执行XHR状态0

(旁边问题1:为什么firebug显示“xml”作为类型?):

(旁边问题2:为什么POST之前没有OPTIONS请求?):

firebug

我也尝试使用RESTClient插件来获取firefox,我得到了想要的结果:

RESTClient plugin

欢迎所有帮助/提示

1 个答案:

答案 0 :(得分:-3)

检查此问题 XmlHttp Request status 0, localhost issues (javascript, ajax, php) help

它看起来像是一个处理localhost的浏览器问题