2010-04-08 7 views
1

jQuery와 AJAX를 사용하여 링크와 양식의 콘텐츠를 콘텐츠 div로로드합니다. 또한 주소 버튼을 사용하여 뒤로 버튼을 활성화하고 새로 고침합니다. 서버 측에서는 Java 및 Spring MVC를 사용합니다.jQuery 주소 - 양식 제출 후 리디렉션

jQuery Address와 AJAX를 사용하고 있기 때문에 직접로드되는 유일한 페이지는 "index.html"입니다. 나머지는 내용 div에로드되고로드 할 페이지가 해시에 지정됩니다. 즉, "index.html #/users/add.html"은 "users/add.html"을로드합니다.

이제 "users/add.html"에는 새 사용자를 만들기위한 양식이 포함되어 있습니다. 양식이 제출되고 모든 것이 정상적으로 처리되면 컨트롤러는 "users/index.html"로 리다이렉트합니다. 문제는 jQuery Address가 리디렉션에 대해 알지 못하기 때문에 URL은 "index.html #/users/add.html"로 유지됩니다. 이 문제는 페이지를 새로 고친 다음 인덱스 페이지 대신 양식으로 다시 전송할 때 발생합니다.

이 문제를 해결할 방법이 있습니까? 나는 그런 내 변경 방법 뭔가가 후

$('FORM').submit(function() { 
    shareData = $(this).serializeArray();  
    $.address.value($(this).attr('action')); 
    }) 

:

감사합니다,
스티

+0

는 형태가 아약스에 제출하고있는 점은 무엇인가? –

답변

0

내가 문제의 내 설명이에 가장 적합한, 사과하지 않았다 알고 있습니다.

다른 질문에서 문제를 재 형식화했지만 답변이 없지만 해결책을 찾았습니다. 양식 후 리디렉션 제출 할 경우 :

AJAX - Get response URL after redirect

0

우선 나는 그렇게 내 양식을 초기화하기

$.address.change(function(event) { 

    if (event.path != '/' && event.parameters.layout_to_use != undefined) { 

     // if no json, load don't do a post request 
     shareData = _arrayToJson(shareData);; 

     $('#areatoreload') 
      .html('<span style="background-color:red;">loading...</span>') 
      .load('myscript.php', shareData, function() {}); 
    } 
    return false; 
}); 

그리고 난 내 관리 같은 방식으로 연결하십시오. 나는 그것이 당신을 도울 수 있기를 바랍니다. shareData는 좋은 방법은 아니지만 지금은 다른 것을 찾지 못합니다. 이 코드는 테스트되지 않았으므로 코드의 일부만 추출합니다.

0

새로운 양식 샘플을 살펴보십시오. 그것은 매우 기본이지만 아마 쓸모가있을 것입니다. http://www.asual.com/jquery/address/samples/form/

서버 응답이 돌아온 후에 주소를 변경해야하므로 $ ('form'). address() 함수를 사용할 수 없습니다.

당신은 잠재적 인 반응을 감지하는 data.redirect 속성을 사용할 수 있습니다 리디렉션 : How to manage a redirect request after a jQuery Ajax call