ajax成功函数没有在java脚本中调用

时间:2015-06-18 12:55:43

标签: java javascript jquery ajax json

我正在使用Spring MVC architecture,在我的应用程序中我编写了控制器,这些只是我的服务,它返回json对象作为响应。

现在我试图在javascript中使用ajax调用来调用该控制器。 我已经为我的一个控制器编写了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).

2 个答案:

答案 0 :(得分: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;
}

希望这有帮助

答案 1 :(得分:0)

您需要stringify数据

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