2012-10-24 42 views
0

我想加載一個頁面,我已經通過一些JSON作爲POST。 JSON發送並返回頁面,但使用下面的JavaScript我仍保留在原始頁面上。我需要重定向到頁面JQuery發佈JSON到MVC不重定向

$("#searchForm").submit(function (event) { 
       var jsonObjects = { 
        "SomeJson": "SomeData" 
       }; 

       $.ajax({ 
        type: "POST", 
        dataType: "json", 
        async: false, 
        data: JSON.stringify(jsonObjects), 
        beforeSend: function (x) { 
         if (x && x.overrideMimeType) { 
          x.overrideMimeType("application/json;charset=UTF-8"); 
         } 
        }, 
        url: 'Home' 
       }); 
       event.preventDefault(); 
      }); 

這張貼JSON,但頁面,但不重定向。頁面'Home'返回給瀏覽器。

我不能重定向到家裏成功爲後期的參數將不存在

我已經試過沒有的JavaScript這樣做的,用標準的HTML提交,但似乎無法嵌入JSON

回答

1

如果您發出ajax請求,並且服務器使用3xx重定向進行響應,請求的頁面將不會更改。這是因爲任何ajax請求都不會在瀏覽器中更改當前位置,這就是您通常希望使用ajax的原因。

所以你需要一個成功處理程序,你可以做重定向。把它傳遞給你的$.ajax()調用。

success: function() { 
    window.location.href = '/Home'; // or something 
} 

如果請求成功,哪個會將當前頁面更改爲您選擇的url。

+0

不幸的是,成功處理程序將執行GET(如果我錯了,請糾正我),因此不包含POST正文。 'Home'的內容依賴於JSON。歡呼 –

+0

你重定向總是一個GET。您不能3xx重定向POST請求並讓它發出另一個POST請求。瀏覽器不會那樣做。也許你需要重新思考你的方法? –

+0

好的,有道理。 Ajax不是必需的,你知道一種方法來創建一個包含JSON的帖子來改變位置嗎? –