2016-10-11 15 views
0

SpringでJavaにJSの問題があります。私はいくつかのWebServicesを作っていて、PHPはスムーズに動いていますが、JSを使ってそれらにアクセスする必要があります。私はJS関数は常にステータスを返す呼び出すと、私はまだ、すべてを試してみたJSJSでJSONを使用するとエラーが発生する

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); 
} 

} 

を私のサービス

を呼び出していません404と同じです。

ChromeのアドバンストRESTクライアントを使用すると、通常、上記のサービスが呼び出されます。

私はどこが間違っているのか知りたいですか? 何を行う必要がありますか?

+0

URLを入力してもよろしいですか? –

+0

ページがオンになっているポートとは異なるポートに送信していますか? CORSを実装する必要がある場合 – charlietfl

答えて

1

方法@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の部分がありません)を呼び出すと、現状のJSコードが機能するはずです。必要に応じてテストすることができます。

+0

ご協力いただきありがとうございます! –

0

コントローラでマッピングを削除し、方法に@RequestMappingにおけるパスクラス注釈のパスに対するものである、ため

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

ような方法でそれを保ちます。

+0

ありがとうございました! –

関連する問題