[angularjs] AngularJS-전체 페이지로드로 리디렉션을 수행하려면 어떻게해야합니까?

페이지가로드 될 때 내 웹 서버의 쿠키가 새로 고쳐 지도록 전체 페이지를 다시로드하는 리디렉션을 수행하고 싶습니다. window.location = "/#/Next"window.location.href = "/#/Next"작동하지 않습니다, 그들은 서버를 공격하지 않는 각도 경로를 않습니다.

Angular 컨트롤러 내에서 전체 서버 요청을 만드는 올바른 방법은 무엇입니까?



답변

에 대한 <a>태그 :

당신 target="_self"은 당신의 <a>태그 를 붙일 필요가 있습니다

AngularJS가 전체 페이지 다시로드를 수행하는 세 가지 경우가 있습니다.

  • 대상 요소를 포함하는 링크
    예 :<a href="https://stackoverflow.com/ext/link?a=b" target="_self">link</a>
  • 다른 도메인으로 이동하는 절대 링크
    예 :<a href="http://angularjs.org/">link</a>
  • 기본이 정의 된 경우 다른 기본 경로로 연결되는 ‘/’로 시작하는 링크
    예 :<a href="https://stackoverflow.com/not-my-base/link">link</a>

자바 스크립트 사용 :

$location서비스를 사용하면 URL 만 변경할 수 있습니다. 페이지를 다시로드 할 수 없습니다. URL을 변경하고 페이지를 새로 고침하거나 다른 페이지로 이동해야하는 경우 하위 수준 API를 사용하세요 $window.location.href.

보다:


답변

우리는 HTML 앵커가 아닌 JS 코드에서 작업하는 동일한 문제가 발생했습니다. 이것이 우리가 그것을 해결 한 방법입니다.

  1. 필요한 경우 서비스를 통해 현재 URL을 가상으로 변경 $location합니다. 이는 목적지가 현재 URL의 변형 일 때 유용 할 수 있으므로 $location도우미 메서드를 활용할 수 있습니다 . 예를 들어 $location.search(..., ...)쿼리 문자열 매개 변수의 값을 변경하기 위해 실행 했습니다.

  2. $location.url()필요한 경우 현재를 사용하여 새 도착 URL을 만듭니다. 작동하기 위해이 새로운 것은 스키마, 도메인 및 포트 이후의 모든 것을 포함해야했습니다. 예를 들어 이동하려는 경우 :

    http://yourdomain.com/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en

    그런 다음 URL을 다음과 같이 설정해야합니다.

    var destinationUrl = '/YourAppFolder/YourAngularApp/#/YourArea/YourAction?culture=en';

    (리딩 '/'도 함께).

  3. 하위 수준 에서 새 도착 URL 지정 :$window.location.href = destinationUrl;

  4. 강제 재 장전, 여전히 낮은 수준 : $window.location.reload();


답변

검색 및 히트 및 시험 세션을 제공 한 후 먼저 다음과 같은 URL을 지정하여 해결할 수 있습니다.

$window.location.href = '/#/home/stats';

그런 다음 새로 고침

$window.location.reload();


답변

나는 같은 문제가 있었다. 내가 사용하는 경우 window.location, $window.location또는 <a href="..." target="_self">경로는 페이지를 새로 고침하지 않습니다. 따라서 내 앱에서 원하는 것이 아닌 캐시 된 서비스가 사용됩니다. 라우팅 후 페이지를 강제로 다시로드하도록 window.location.reload()after window.location를 추가하여 문제를 해결했습니다 . 이 방법은 페이지를 두 번로드하는 것 같습니다. 더러운 속임수 일지 모르지만 작동합니다. 이것이 내가 지금 가지고있는 방법입니다.

  $scope.openPage = function (pageName) {
      window.location = '#/html/pages/' + pageName;
      window.location.reload();
  };


답변

이 시도

$window.location.href="#page-name";
$window.location.reload();


답변