Я пытаюсь стрелять запрос 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):
Я также попытался с RESTClient плагин для Firefox, и я получаю желаемого результата:
все помощь/советы приветствовать
так, вы на самом деле включить CORS? –
как мы это сделаем? Я думал, что эта строка ** jQuery.support.cors = true; ** сделает это – Rima
Получаете ли вы такое же поведение при работе в Chrome, объект XHR должен прочитать ответ HTTP-статуса, чтобы вернуть правильное (статус) код. Я сомневаюсь, что это происходит, когда вы находитесь на локальной машине – elsadek