javascript - 使用 JS 消耗 JSON 时出错

标签 javascript java json rest spring-mvc

我在使用 Spring 的 Java 中遇到 JS 问题。我做了一些WebServices并且PHP运行顺利,但是我需要使用JS访问它们。我已经尝试了一切,仍然没有调用我的服务

下面是我的 Java 代码

@Controller
@RequestMapping("/map")
public class MapRest {

@Autowired
private MapService mapService;

@RequestMapping(value = "/searchCarByUser", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<RetornoMapa> searchCarByUser(@RequestBody User user) {
    RetornMap retornMap = new RetornMap();
    try {
        List<Car> list = mapService.search(user);
        retornMap.setListCar(list);

    } catch (Exception e) {
        Log.logError("Error", e);
    }
    return new ResponseEntity<>(retornMap, HttpStatus.OK);
}

}

现在我的 JS 代码

function testeJson() {
var user = {
    id: 1,
    name: 'Jonh'
};
var json = JSON.stringify(user);
$.ajax({
    type: "POST",
    url: "http://localhost:8080/orion/webservice/map/searchCarByUser",
    traditional: true,
    data: json,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success: function (data) {
        alert(data);
    }, error: function (jqXHR, status) {
        // error handler
        console.log(jqXHR);
        alert('fail' + status.code);
    }
});
}

当我调用 JS 函数时,总是返回等于 404 的状态。

当我使用Chrome的高级REST客户端时,通常会调用上面列出的服务。

我想知道我哪里出错了? 应该做什么?

最佳答案

从方法@Path注释中删除第一个斜杠:

@Controller
@RequestMapping("/map")
public class MapRest {

@Autowired
private MapService mapService;

@RequestMapping(value = "searchCarByUser", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<RetornoMapa> searchCarByUser(@RequestBody User user) {
//...

每个方法的 @Path 遵循与 href="..." 属性中的路径相同的规则:如果它以斜线开头,它是绝对路径,否则它是相对路径(在本例中是相对于基类的@Path)。

考虑到这一点,如果您调用 http://localhost:8080/orion/webservice/searchCarByUser (没有 /map部分),如果需要的话可以测试一下。

关于javascript - 使用 JS 消耗 JSON 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39969340/

相关文章:

javascript - 我可以将回调转换为 promise 吗?

java - 记录到文件并为每一行添加前缀的自定义打印流或打印编写器

json - 使用 HTML5 缓存 JSON 对象

java - Spring maven - 运行特定测试(通过注释或 maven 配置文件)

javascript - 使用 Javascript 未定义 json Flickr Api

c# - 如何提高 .Net 中的 JSON 反序列化速度? (JSON.net 还是其他?)

c# - 为 Chromium 编写托管包装器

javascript - 水线,在数组中查找数组

javascript - XMLHttpRequest 没有停止

java - Apache Pivot - 启动应用程序时出现 SerializationException