我正在使用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).
答案 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}),