在Java(Spring)后端和AngularJS前端之间建立路由

时间:2019-02-16 22:36:40

标签: javascript java angularjs spring spring-mvc

我是Spring和AngularJS的新手,我正在尝试从后端到前端控制器的路由。 我的Spring后端:

@Controller
@RequestMapping("test1")
public class TestController {
    public TestController() {}

    @RequestMapping(value="test2", method=RequestMethod.GET, produces= MediaType.APPLICATION_JSON_VALUE)
    @ResponseBody
    @Transactional("defaultTransactionManager")
    public String getSearch() {
        System.out.println("It reaches here!");
        return ("Test Success!");
    }
}

我的AngularJS前端:

this.testingHTTP = (vm) => {
      $http({
        method: 'GET',
        url:SERVICE_URL + '/test1/test2',
        headers: {
          'Content-Type': 'application/json'
        },

      }).then(function successCallback(response) {
        vm.testerDiv = response;
      }, function errorCallback(response) {
        console.log(response, 'Test failed');
      });
    };

当我运行前端功能时,“它到达这里!”出现在我的后端控制台中,并且出现在我的浏览器控制台中:

  

TypeError:无法读取未定义的属性“ message”       在handleResponseError(defaultServices.js:48)       在processQueue(angular.js:17330)       在angular.js:17378       在Scope。$ digest(angular.js:18515)       在Scope。$ apply(angular.js:18903)       完成时(angular.js:12775)       在completeRequest(angular.js:13032)       在XMLHttpRequest.requestLoaded(angular.js:12937)处“测试失败”

我知道网址是正确的;可能与我的Content-Type有关吗?我想念什么?

1 个答案:

答案 0 :(得分:1)

Angular JS期望响应默认为public AddArrivalTime(Movement e) { .Match("(:Loc { Id: 1})-[m:Movement]->(:Loc {Id: 2})") .Set($"m = {e.Arrival}") .ExecuteWithoutResults(); } public Loc { public long Id {get;set;} public string Name {get;set;} } public Movement{ public DateTime? Arrival {get;set;} public DateTime? Depature {get;set;} } 。因此,您需要像下面这样从JSON返回响应作为JSON字符串

Spring Controller

在成功使用angularjs解决问题时,您应该进行@Controller @RequestMapping("test1") public class TestController { public TestController() {} @RequestMapping(value="test2", method=RequestMethod.GET, produces= MediaType.APPLICATION_JSON_VALUE) @ResponseBody @Transactional("defaultTransactionManager") public String getSearch() { System.out.println("It reaches here!"); return "{\"resp\":\"Test Success\"}"; } } 来获得response.resp的价值。