当我请求停止服务(春季启动)时,jQuery无法正常工作

时间:2019-04-29 08:23:18

标签: java jquery ajax rest spring-boot

我正在使用spring boot rest api,我想将信息从rest api获取到html页面。我尝试使用jquery进行此操作,但无法获取数据。

这是我的休息控制器

package tr.kasim.Controller;

import java.sql.Date;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import tr.kasim.Service.PersonelService;
import tr.kasim.Service.PtsGirisCikisService;
import tr.kasim.Model.Personel;
import tr.kasim.Model.PtsGiriscikis;

@CrossOrigin("*")
@RestController
public class STRestController {

@Autowired
public PersonelService personelService;

@Autowired
public PtsGirisCikisService ptsGirisCikisService;

@GetMapping("/api/personels")
public ResponseEntity<List<Personel>> getPersonels(){
    List<Personel> personels = personelService.findAll();
    return ResponseEntity.ok().body(personels);
}

@GetMapping("/api/giriscikis")
public ResponseEntity<List<PtsGiriscikis>> getGirisCikis(){
    List<PtsGiriscikis> giriscikis = ptsGirisCikisService.findAll();
    return ResponseEntity.ok().body(giriscikis);
}

//@GetMapping("/api/personel")
@RequestMapping(method=RequestMethod.GET, value="/api/personel", produces="application/json" )
public ResponseEntity<List<PtsGiriscikis>> getPersonelByKartNoAndİseGiris(@RequestParam("kartno") String KartNo , @RequestParam("tarih") Date IseGirisTarihi){
    String errorMessage="Aranilan Personel Bulunamadi!";

    Personel personel = personelService.findPersonelByKartnoAndIsegiristarihi(KartNo , IseGirisTarihi);

    if(!personel.equals(null)) {
        List<PtsGiriscikis> girisCikis = ptsGirisCikisService.findByPersonelid(personel.getId());
        return ResponseEntity.ok().body(girisCikis);
    }

        return null;
}

}

这是我的控制人

package tr.kasim.Controller;

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;

@Controller
public class STController {

@GetMapping("/")
public String goHome() {
    return "templates/index";
}
}

这是index.html页面

<!DOCTYPE html>
<html>
<head>
    <title>Hello jQuery</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
    <script>
        function findPersonels() {
            $.ajax({
                type:"GET",
                url: "/api/personels",
                contentType: "application/json"
            }).then(function(data) {
                $('.giriscikis-id').append(data.id);
                $('.giriscikis-ad').append(data.ad);
            });
        }
    </script>
</head>

<body>
    <div>

        <p class="giriscikis-id">The ID is </p>
        <p class="giriscikis-ad">The name is </p>
        <input type="button" id="doldur" name="doldur" value="field doldur" onclick="findPersonels();">
    </div>
</body>

我尝试了许多jquery + spring应用程序示例,但仍然一无所获。当我尝试访问index.html时,只看到了我的html著作,其余服务信息却未显示。请纠正我,谢谢。

1 个答案:

答案 0 :(得分:1)

信息有限:

  1. 我猜您从路径到模板的映射是错误的。不是这样吗?

    @GetMapping(“ /”) 公共字符串goHome(){     返回“模板/索引”; }

  2. 一个Uncaught ReferenceError表示找不到您的方法。请验证拼写(在您的示例中看起来不错,请在代码中再次检查)。在您的示例中,findPersonels的括号完全被弄乱了。 )太多。如果此问题得到纠正,请在浏览器控制台中检查是否在加载页面时没有http404(以便找到js/personels.js)。

  3. 您的端点/api/personels将列表定义为返回类型,但是您的脚本使用属性data.addata.id,它们看起来并不像他们期望的那样。返回的json可能看起来像这样{ items: [ { 'ad': 'first personel' 'id': '1' }, { 'ad': 'second personel' 'id': '2' } ] },其结构取决于您的JSON编组器。所以访问的正确语法 您在JS中的对象就像data.items[0].id一样。