【发布时间】:2013-04-08 06:59:48
【问题描述】:
我有一个使用 RESTful Web 服务在 Spring MVC 上运行的 Web 应用程序。我正在尝试从 HTML/Javascript 文件向这些 Web 服务发送 JSON。这是Javascript:
$.ajax
(
{
type: "post",
data: JSON.stringify(data),
contentType : "application/json",
dataType: "json",
url: "http://localhost/proj/service",
success: function(data)
{
callback(data);
}
}
);
以及 Spring MVC 中的映射:
@RequestMapping(value = "/proj/service/", method = RequestMethod.POST)
public ModelAndView procRequest(@RequestBody String paramsJson, HttpServletResponse resp, WebRequest request_p){
resp.setStatus(HttpStatus.CREATED.value());
resp.setHeader("Location", request_p.getContextPath() + "/proj/service");
resp.addHeader("Access-Control-Allow-Origin", "*");
//Code
}
由于某种原因,当我从它通过的 ajax 请求中删除 contentType 键时,它的格式当然不正确,因为我希望 Javascript 向我发送 JSON 字符串。但由于某种原因,如果我留下 contentType 键,我会收到以下错误:
XMLHttpRequest cannot load http://localhost:8080/proj/service/. Origin http://localhost is not allowed by Access-Control-Allow-Origin.
我不知道什么可能导致这个错误,因为适当的标题在那里。
谢谢。
【问题讨论】:
标签: javascript jquery rest spring-mvc cors