2013-01-08 2 views
9

저는이 문제를 지금 당장 해결하려고 노력하고 있습니다. 그러나 itworking을 얻을 수 없습니다. 사용자가 링크를 클릭하면이 작업을 수행하겠다는 확인을 요청합니다. 그런 다음 아약스 전화가 걸립니다. 호출 된 스크립트는 잘 작동하고 리디렉션 할 문자열을 반환합니다.아약스 성공에 대한 window.location.href가 작동하지 않습니다.

여기 window.location의 문제에 대한 여러 게시물을 보았습니다.하지만 그 중 아무도 내 문제를 해결할 수 없습니다.

내 코드 : 나는 alert(data) 대신 window.location.href = data의 할 경우

function confirm(a,b,c){ 
     var r=confirm("Are you sure to do this?"); 
     if(r==true){ 
      $.ajax({ 
       type: "POST", 
       url: "/process-action.php", 
       async: false, 
       data: {a:a,b:b,c:c}, 
       success: function(data){ 
        window.location.href = data; 
       } 
      }); 
     } else { 
      return false; 
     } 
    } 

내가 올바른 데이터가 전달되는 것을 볼 수 있습니다. 예를 들어/user/homepage. 그러나 리다이렉션은 일어나지 않습니다.

상대 경로를 전체 URL로 바꾸려고 시도했지만 작동하지 않는 경우.

+0

try location.href = data – Andy

답변

16

시도 대신 assign()를 사용하여 :

window.location.assign(data); 

window.location.href은 속성이 아니라 방법이다.

+0

감사합니다. – user1662927

+0

나를 위해 작동하지 :(IE 11 – Reena

+0

에서 잘 작동한다 @reena 오류 –

1

위치 assign() 방법

The assign() method is supported in all major browsers. 
-1

또한에서는 window.location = "someurl"를 사용할 수 있습니다;

+0

이 방법은 Android의 최신 Chrome 모바일 브라우저에서 작동하지 않습니다. .대신 Rory McCrossan의 answer() 접근 방식을 사용해야합니다. –

0

는이

<form action="submit.php" onsubmit="return false;" method="post">

과 같은 스크립트가 될 것입니다 작업을 할 수 있습니다.

+0

양식을 제출하여 조치를 취할 수 있기 때문에 성공하면 위치를 다시로드 할 수없는 것보다 ajax를 사용하여 양식을 제출할 때 – Panther

+0

를 설명하십시오. 그래서 우리는 form을 submit하지 않기 위해 onsubmit 함수를 추가하고 ajax로 데이터를 보내고 에러없이 페이지를 성공적으로 다시로드 할 수 있습니다. –

관련 문제