2016-10-11 68 views
0

我有使用Spring Java的JS问题。我做了一些WebServices,PHP运行平稳,但我需要使用JS访问它们。我用尽了一切,依然在JS错误消耗JSON与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); 
    } 
}); 
} 

不叫我的服务

下面我的代码在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函数总是返回状态等于404.

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

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

+0

你确定你输入的网址是正确的吗? –

+0

你发送到不同的页面比页面?如果需要实施CORS。 – charlietfl

回答

1

从方法@Path注释删除第一个斜杠,如果它有一个斜杠开始,这是一个绝对路径,否则它是相对路径(在这种情况下,相对于基类'@Path)。

考虑到这一点,如果你打电话http://localhost:8080/orion/webservice/searchCarByUser而不是/map部分,你的currrent JS代码应该可以工作,你可以测试它。

+0

谢谢你的帮助! –

0

在控制器中取出映射,并保持它在方法

@RequestMapping(value = "/map/searchCarByUser", ..... 

因为,在@RequestMapping上的方法中的路径是相对于在类注释的路径。从href="..."属性

@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遵循相同的规则,比如说,路径:

+0

谢谢你的帮助! –