2015-06-18 2 views
-1

Я работаю с Spring MVC architecture, в моем приложении я написал контроллеры, это ничего, кроме моих сервисов, которые возвращают объекты json в качестве ответа.Функция ajax success не получает вызов в java-скрипте

Теперь я пытаюсь вызвать этот контроллер, используя вызов ajax в javascript. Я написал ajax-вызов для одного из моих контроллеров и передаю объект JSON со своей клиентской стороны, поскольку это запрос POST. В том, что вызов ajax каждый оператор выполняется правильно до content-type, , но когда дело доходит до функции успеха, он напрямую перенаправляется на функцию ошибки, не выполняя функцию успеха.

Я прошел через все предлагаемые ссылки, но все же я застрял на той же ошибке.

Может ли кто-нибудь помочь мне получить решение. Вот код я использую:

function postRequest(postUrl,jsonData) 
{ 
var result; 
$.ajax({  
    url: postUrl, 
    async: false, 
    type: 'POST', 
    crossDomain: true, // enable this 
    data: jsonData, 
    dataType: 'json', 
    traditional : true, 
    // processData: false, 
    contentType: "application/json", 
    success: (function (data) 
    {   
     alert(data); 
      result = data; 
       alert("In success"); 
    }), 
    error: function (errorThrown) 
    { 
     alert("In error"); 
     return errorThrown; 
    } 

}); 

return result; 
} 

Это мой объект JSON

{ 
    "description":"This is test", 
    "price":11.0, 
    "code":"11" 
} 

Я получаю эти две ошибки:

Object { readyState: 0, getResponseHeader: .ajax/v.getResponseHeader(), getAllResponseHeaders: .ajax/v.getAllResponseHeaders(), setRequestHeader: .ajax/v.setRequestHeader(), overrideMimeType: .ajax/v.overrideMimeType(), statusCode: .ajax/v.statusCode(), abort: .ajax/v.abort(), state: .Deferred/d.state(), always: .Deferred/d.always(), then: .Deferred/d.then(), 11 more… } RequestResponse.js:52:6 

Выше ошибки я получил в errorThrown object .И ниже является еще одна ошибка

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://192.168.1.100:8080/FINEXERP_Server/codePrice/save. (Reason: CORS header 'Access-Control-Allow-Origin' missing). 
+0

, что это ошибка, которую вы получите в сообщении об ошибке: функция()? Изменить обратный вызов ошибки на error: function (xhr, status, errThrown) { console.log (xhr, status, errThrown); } проверьте, какую ошибку вы получите. –

+0

'async: false,' всегда плохая идея, это не так, как должен работать ajax-запрос, и это btw устарело –

+0

'когда дело доходит до функции успеха, оно напрямую перенаправляется на функцию ошибки, не выполняя функцию успеха'. Таким образом, запрос doesn Успех был неудачным. Проверьте сообщение об ошибке –

ответ

0

Можешь ли вы попробовать это:

function postRequest(postUrl,jsonData) { 
    var result; 
    $.ajax({  
    url: postUrl, 
    async: false, 
    type: 'POST', 
    crossDomain: true, // enable this 
    data: jsonData, 
    dataType: 'json', 
    traditional : true, 
    // processData: false, 
    contentType: "application/json", 
    success: function (data) {   
     alert(data); 
      result = data; 
       alert("In success"); 
    }, 
    error: function (errorThrown) { 
     alert("In error"); 
     return errorThrown; 
    } 

}); 

return result; 
} 

Надеется, что это помогает

+0

Я пробовал вашу предложенную модификацию, но все та же ошибка – rachana

0

Вы должны stringify вам данные, такие как

data: JSON.stringify({'jsonData' : jsonData}), 
+0

@ozill все еще не работает – rachana

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