我是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有关吗?我想念什么?
答案 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
的价值。