양식 제출 중 ajax 호출 후 성공 페이지 표시 없음

Malak

struts2로 작업 중이며 양식이 있으며 모든 값을 JSON 배열로 가져오고 싶습니다.

이 JSON 배열을 얻기 위해 JSON 형식을 변환하고 제출 이벤트 중에 Struts 작업으로 보내는 JavaScript 코드 조각을 만들었습니다.

<script type="text/javascript">
        jQuery("#advanced-search").submit(function(e){
            var formInput=jQuery(this).serializeJSON({parseBooleans: true,parseNulls: true});
            jQuery.ajax({
                type: "POST",
                url: "<s:url action='searchJSON'/>",
                data: "jsonForm="+JSON.stringify(formInput),
                dataType: "json"
            });
        });
    </script>

내 양식 작업은 다음과 같이 구현됩니다.

<form action="javascript:void(0);" id="advanced-search" method="post">
...
</form>

작업이 호출되고 JSON 배열을 사용할 수 있습니다. 다음 단계는 검색 => 결과 페이지와 같은 다른 페이지에 결과를 표시하는 것입니다. 따라서 내 작업의 결과는 타일 (jsp)입니다.

<action name="search" class="searchAction" method="search">     
    <result name="success" type="tiles">results</result>
    <result name="error" type="tiles">error</result>
</action>

자바 코드 :

public String search() {
    JSONObject jObj = (JSONObject) new JSONTokener(jsonForm).nextValue();
    ....
    return SUCCESS;
}

문제는 여기에 있습니다 ... 내 양식이 제출되고 내 작업이 좋은 JSON 배열로 호출되지만 성공 결과가 브라우저에 jsp ..를 표시하지 않고 페이지는 여전히 양식입니다.

누구든지 결과 페이지로의 리디렉션이 완료되지 않은 이유를 알고 있습니까?

양식을 JSON 배열로 제출하는 것이 좋은 방법입니까?

Malak

몇 가지 테스트 후 ... 그리고 의견 (감사합니다)으로 해결책을 썼습니다.

여전히 JSON 형식으로 ajax 제출을 사용하지만 콜백 메시지는 리디렉션 할 URL입니다.

HTML :

<form action="javascript:void(0);" id="advanced-search" method="post">
...
</form>

JS :

jQuery("#advanced-search").submit(function(e){
            //var formInput=jQuery(this).serializeObject();
            var formInput=jQuery(this).serializeJSON({parseBooleans: true,parseNulls: true});

            e.preventDefault();
            jQuery.ajax({
                url: "<s:url action='searchJSON'/>",
                data: "jsonForm="+JSON.stringify(formInput),
                contentType: "application/json",
                dataType: "json"
            }).done(function( msg ) {
                window.location.href="<s:url action='search'/>?"+msg;
            });
        });

그런 다음 ajax가 호출하는 메소드에서 JSON 객체를 URL로 변환합니다.

Struts.xml에서 :

<action name="searchJSON" class="searchAction" method="searchJSON">
    <result type="json">
        <param name="root">urlRedirectAjax</param>
    </result>
</action>

방법:

public class SearchAction extends ActionSupport {

private String  urlRedirectAjax;

public String searchJSON(){

    StringBuilder urlResultat = new StringBuilder();
    JSONObject jObj = (JSONObject) new JSONTokener(jsonForm).nextValue();

    if(jObj == null)
        return ERROR;


    if(jObj.has("elementJSON")){
        JSONObject jsObjMot = (JSONObject) jObj.get("elementJSON");
        String separator = "";
        for(Object key : jsObjMot.keySet()){
            urlResultat.append(separator);
            separator = ";";
            urlResultat.append((String) key);
        }   
        urlResultat.append("&");
    }   

    .....

    urlRedirectAjax = urlResultat.toString();

    return SUCCESS;
}

public String getUrlRedirectAjax() {
    return urlRedirectAjax;
}

public void setUrlRedirectAjax(String urlRedirectAjax) {
    this.urlRedirectAjax = urlRedirectAjax;
 }
}

ajax 메소드가 수신 한 URL은 다음과 같습니다. param = value; value; value; & param = value;

필요에 따라 형식을 지정할 수 있습니다. URL은 javascript (호스트 등)로 완성됩니다.

URL의 각 매개 변수는 URL에 의해 호출되는 Action의 속성이어야합니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

양식 제출 후 localStorage 페이지가 표시되지 않음

분류에서Dev

양식 제출 후 성공 메시지 표시

분류에서Dev

AJAX가 성공한 후 동일한 양식을 다른 페이지에 제출하십시오.

분류에서Dev

양식 제출 후 성공 팝업이 표시됩니까?

분류에서Dev

양식 제출 / 페이지 다시로드 후 JavaScript 성공 메시지

분류에서Dev

제출 후 Ajax 표시 양식

분류에서Dev

Ajax 호출이 성공시 응답을 표시하지 않음

분류에서Dev

제출 후 양식 성공 메시지가 사라짐

분류에서Dev

ajax를 사용하여 양식을 성공적으로 제출 한 후 페이지를 다시로드하십시오.

분류에서Dev

HTML, PHP : 양식 제출 후 변수가 표시되지 않음

분류에서Dev

Rails + Bootstrap + AJAX : 제출 후 양식이 표시되지 않는 모달

분류에서Dev

양식 제출 후 페이지 새로 고침 중지

분류에서Dev

페이지 새로 고침없이 ajax 양식이 다시 제출되지 않음

분류에서Dev

이미 시작된 후 양식 제출 중지

분류에서Dev

이미 시작된 후 양식 제출 중지

분류에서Dev

양식 제출 중지 ($ .post 후 e.preventDefault () 시도했지만 양식 제출이 중지됨)

분류에서Dev

양식 제출 중지 ($ .post 후 e.preventDefault () 시도했지만 양식 제출이 중지됨)

분류에서Dev

dropzone은 ajax 호출 후 양식을 표시하지 않습니다.

분류에서Dev

jQuery / AJAX로 양식을 제출하면 제출시 페이지 새로 고침을 중지 할 수 없습니까?

분류에서Dev

페이지 새로 고침없이 Malsup Form jquery를 사용하여 성공적으로 메일을 보낸 후 양식 제출에 성공 메시지를 표시하는 방법

분류에서Dev

양식 제출시 Ajax 호출-MVC 5

분류에서Dev

오류 표시를 위해 jquery blur ajax에서 양식 제출 중지

분류에서Dev

양식을 제출 한 후 AJAX 호출이 작동하지 않습니다.

분류에서Dev

다중 제출 버튼 다중 확인란 양식 없음 jquery ajax php 제출

분류에서Dev

성공적인 양식 제출 후 AngularJS reCaptcha가 재설정되지 않음

분류에서Dev

양식 제출 후 필드 지우기 및 메시지 제공

분류에서Dev

ajax 및 jquery를 사용하여 양식 제출 후 페이지를 다시로드하지 마십시오.

분류에서Dev

양식 유효성 검사 후 양식이 제출되지 않음

분류에서Dev

페이지 새로 고침 PHP없이 Ajax 양식 제출

Related 관련 기사

  1. 1

    양식 제출 후 localStorage 페이지가 표시되지 않음

  2. 2

    양식 제출 후 성공 메시지 표시

  3. 3

    AJAX가 성공한 후 동일한 양식을 다른 페이지에 제출하십시오.

  4. 4

    양식 제출 후 성공 팝업이 표시됩니까?

  5. 5

    양식 제출 / 페이지 다시로드 후 JavaScript 성공 메시지

  6. 6

    제출 후 Ajax 표시 양식

  7. 7

    Ajax 호출이 성공시 응답을 표시하지 않음

  8. 8

    제출 후 양식 성공 메시지가 사라짐

  9. 9

    ajax를 사용하여 양식을 성공적으로 제출 한 후 페이지를 다시로드하십시오.

  10. 10

    HTML, PHP : 양식 제출 후 변수가 표시되지 않음

  11. 11

    Rails + Bootstrap + AJAX : 제출 후 양식이 표시되지 않는 모달

  12. 12

    양식 제출 후 페이지 새로 고침 중지

  13. 13

    페이지 새로 고침없이 ajax 양식이 다시 제출되지 않음

  14. 14

    이미 시작된 후 양식 제출 중지

  15. 15

    이미 시작된 후 양식 제출 중지

  16. 16

    양식 제출 중지 ($ .post 후 e.preventDefault () 시도했지만 양식 제출이 중지됨)

  17. 17

    양식 제출 중지 ($ .post 후 e.preventDefault () 시도했지만 양식 제출이 중지됨)

  18. 18

    dropzone은 ajax 호출 후 양식을 표시하지 않습니다.

  19. 19

    jQuery / AJAX로 양식을 제출하면 제출시 페이지 새로 고침을 중지 할 수 없습니까?

  20. 20

    페이지 새로 고침없이 Malsup Form jquery를 사용하여 성공적으로 메일을 보낸 후 양식 제출에 성공 메시지를 표시하는 방법

  21. 21

    양식 제출시 Ajax 호출-MVC 5

  22. 22

    오류 표시를 위해 jquery blur ajax에서 양식 제출 중지

  23. 23

    양식을 제출 한 후 AJAX 호출이 작동하지 않습니다.

  24. 24

    다중 제출 버튼 다중 확인란 양식 없음 jquery ajax php 제출

  25. 25

    성공적인 양식 제출 후 AngularJS reCaptcha가 재설정되지 않음

  26. 26

    양식 제출 후 필드 지우기 및 메시지 제공

  27. 27

    ajax 및 jquery를 사용하여 양식 제출 후 페이지를 다시로드하지 마십시오.

  28. 28

    양식 유효성 검사 후 양식이 제출되지 않음

  29. 29

    페이지 새로 고침 PHP없이 Ajax 양식 제출

뜨겁다태그

보관