1

国リストを返すJava Webサービスを作成しました

@RequestMapping(value = "/getcountrylist", method = RequestMethod.GET, headers = "Accept=application/json")
public @ResponseBody
@ApiIgnore
Object getcountrylist(@RequestParam String pvtToken,
        @RequestParam String lan) {

    System.out.println(API_TAG + "Request recevied to get CountryList");
    System.out.println("DB:"+dbName);
    if (!this.pvtToken.equals(pvtToken)) {
        CountryList countryList = new CountryList();            
        return new ResponseEntity<CountryList>(countryList,
                HttpStatus.UNAUTHORIZED);
    }
    CountryList countryList = avlMobileAPIService.getCountryList(lan);      
    return new ResponseEntity<CountryList>(countryList, HttpStatus.OK);     

}

上記の Web サービスを JavaScript から JSONP として呼び出す必要があります。次の JavaScript コードを次のように記述しました。

function buttonClick(){

$.ajax({
           type: "GET",
           dataType: "jsonp",         
           crossDomain: true,
           url: "http://localhost:8080/api/getcountrylist",
             data: {pvtToken:"JXku56AE0067YtRUSAZEE",lan:"en"},
             Accept: "application/jsonp",
             jsonpCallback:  function(data, status){
                alert('callback');
                alert(data);
           },              
           success: function(data, status){
                alert('sucess');
           },


           });

}

上記の関数は Web サービスを呼び出してリストを返しますが、クライアント側で「無効なラベル エラー」が表示されます。

{"countrylist":[{"countryId":"4","countryCodeAlpha2":"AF","countryCodeAlpha3":"AFG","countryName":"Afghanistan ","isdCode":"93"},{"countryId":"5","countryCodeAlpha2":"AL","countryCodeAlpha3":"ALB","countryName":"Albania ","isdCode":"355"},{"countryId":"6","countryCodeAlpha2":"DZ","countryCodeAlpha3":"DZA","countryName":"Algeria ","isdCode":"213"},{"countryId":"7","countryCodeAlpha2":"AS","countryCodeAlpha3":"ASM","countryName":"American Samoa ","isdCode":"684"}]}

いくつかの記事で、その ajax 呼び出しは JSONP を期待していますが、JSON データを返します。

解決策は何ですか?

4

1 に答える 1