2013-11-21 4 views
0

Я пытаюсь стрелять запрос CORS Ajax с JQuery в направлении к другому порту в той же машине, ниже мой код (мое приложение работает на сервере appache на порт 80):JQuery CORS Ajax запрос неисправного

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); 
      } 
     } 
    }); 
     }); 

Servlet ("пост" записывается в консоль) работает на котом (затмение) на порт 8080:

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

с помощью поджигатель я могу увидеть запрос (с кодом ответа 200) и контент Длина 11 (пустая вкладка результат), но функция ошибок выполняется со статусом XHR 0

(сторона Вопрос1: почему поджигатель отображение "XML" как тип?):

(сторона question2: почему ISN» т есть запрос OPTIONS перед POST):

firebug

Я также попытался с RESTClient плагин для Firefox, и я получаю желаемого результата:

RESTClient plugin

все помощь/советы приветствовать

+1

так, вы на самом деле включить CORS? –

+0

как мы это сделаем? Я думал, что эта строка ** jQuery.support.cors = true; ** сделает это – Rima

+0

Получаете ли вы такое же поведение при работе в Chrome, объект XHR должен прочитать ответ HTTP-статуса, чтобы вернуть правильное (статус) код. Я сомневаюсь, что это происходит, когда вы находитесь на локальной машине – elsadek

ответ

-3

Проверить этот вопрос XmlHttp Request status 0, localhost issues (javascript, ajax, php) help,

это выглядит как вопрос браузера дела с локальным хостом

+0

Вопрос, на который вы ссылаетесь, касается неожиданного звонка с перекрестным происхождением. Это совсем не то, что здесь происходит. –

+0

действительно связано с перекрестным orgin вызовом и именно с его внедрением браузером – elsadek

Смежные вопросы