2012-02-27 2 views
1
$j.ajax({ 
     type: "POST", 
     url: 'http://acme.host.vhost/objects/create/', 
     dataType: 'http', 
     async: false, 
     data: {object: data}, 
     success: function (msg) { 
      // window.location = 
      alert(msg); 
     }, 
     statusCode:{ 
      200: function(){ 
       alert(200); 
      } 
     } 
    }); 

관리자는 응답이 전체 웹 페이지임을 확인합니다. 브라우저가 실제로 해당 웹 페이지로 리디렉션되도록 내 POST 요청을 어떻게 변경합니까?서버에서 리디렉션이 제대로 렌더링되도록 jquery로 게시 하시겠습니까?

경고 (200)가 발생하므로 모든 것이 정상입니까? 그러나 성공은 촉발되지 않습니다. = \

답변

1

아약스는 "보조 브라우저"처럼 작동하여 요청을 보내고 수신하여 멈 춥니 다. 그 안에있는 내용을 파싱 할 때까지는 브라우저 디스플레이에 손을 대지 않습니다.

당신이 할 수있는 일은 리다이렉트 할 때를 알기위한 표준을 만드는 것입니다. 또는보다 일반적으로 서버가 클라이언트 측에 명령을 전달하는 방법을 알기위한 것입니다. 나는 바람직하게는 같은 서버에서 클라이언트로 명령을 전송, JSON이 작업을 수행하는 데 사용 :

  • 가 어떤 페이지를 알고 내 애플 리케이션의

    { 
        "errors": [], //an array of all errors from the server (like validation and stuff) 
        "details": [ //an array of additional details the client side must kno 
         "redirect": "url_here.html" 
        ], 
        data: {}  //the actual payload of the request. may be html, or further data or templates etc. 
    } 
    

    하나에 details 속성 JSON 객체를 반환 검색 결과 난에 포함 얼마나 많은

  • 에서 오전
  • 검색 쿼리를 무엇

등등 ..

그래서 결과 페이지를 HTML로 반환하는 대신 JSON을 사용하여 사용자를 '성공'페이지로 전달합니다.

관련 문제