AngularJS - $ http Не удалось загрузить ресурс: сервер ответил со статусом 404 - PullRequest
0 голосов
/ 10 октября 2018

Я создал одностраничное приложение, используя Angularjs.Я сталкиваюсь с следующей проблемой при навигации по страницам.

Проблема 1:

Ниже $http вызов достигает Spring Controller, успешно обработан, и этот метод пружины возвращает bean-компонент.

@RequestMapping(value="/getStatus",method=RequestMethod.GET)

После получения ответа со стороны сервера происходит переход к блоку ошибок в методе JS

Не удалось загрузить ресурс: сервер ответил сстатус 404 (не найдено) -> / getStatus

Почему после успешной обработки происходит переход к блоку ошибок?

Проблема 2:

Несмотря на то, что я перемещаюсь по странице из блока ошибок, используя state.go, Acknowledgement.jsp отображается и {{status}} -> печатается как пустой

Я борюсь с AngularJs & UI router в течение 2 дней.Пожалуйста, помогите

Progress.jsp

<div ng-controller="myctrl as mydata" ng-init="getStatus()">
    // progress icon here
</div>

MyCtrl.js

$scope.getStatus = function() {

$http({
    url: CONTEXT_PATH + 'getStatus',
    method: "GET",
    headers: {'Content-Type': 'application/x-www-form-urlencoded'}
    }).success(function (data, status, headers, config) {
        console.log("success block : "+status);
        $scope.paymentStatus = data.epaymentStatus;
        $state.go("Acknowledgement");
    }).error(function (data, status, headers, config) {
        console.log("failure block : "+status);
        $scope.paymentStatus = data.epaymentStatus;
        $state.go("Acknowledgement");
    });

};

Acknowledgement.jsp

<script type="text/javascript">
console.log("Status :: "+status);
// Here status printing as SUCCESS
</script>

<div ng-controller="myctrl as mydata" id="RESPONSE">
{{status}} --> printing empty
<div class="row row-space" ng-if="status == 'SUCCESS'">
</div>
</div>

ProcessController.java

@RequestMapping(value="/getStatus",method=RequestMethod.GET)
public ProcessBean getStatus(HttpServletRequest 
httpRequest, HttpServletResponse httpResponse) {
    ProcessBean processBean = new ProcessBean();
    try {
        // Business process takes place here
        processBean.setStatus("SUCCESS");
        httpRequest.setAttribute("processStatus", "S");

    } catch(Exception e) {
        processBean.setStatus("FAILURE");
        httpRequest.setAttribute("processStatus", "S");
        e.printStackTrace();
    }
    return processBean;
}

1 Ответ

0 голосов
/ 10 октября 2018

Решил мою первую проблему, добавив в метод @ResponseBody.

@RequestMapping(value="/getStatus",method=RequestMethod.GET)
public @ResponseBody ProcessBean getStatus(HttpServletRequest 
httpRequest, HttpServletResponse httpResponse) {
    ProcessBean processBean = new ProcessBean();
    try {
        // Business process takes place here
        processBean.setStatus("SUCCESS");
        httpRequest.setAttribute("processStatus", "S");

    } catch(Exception e) {
        processBean.setStatus("FAILURE");
        httpRequest.setAttribute("processStatus", "S");
        e.printStackTrace();
    }
    return processBean;
}
...