2
我想從視圖中打一個控制器中的動作,讓它返回一個結果。但是,我總是會收到「請求失敗」,然後控制器中的操作代碼會執行。我想在視圖中使用:Ajax - mvc請求總是失敗
$("#State").change(function() {
if ($(this).val() != "Va") {
$.ajax({
url: '@Url.Action("ProcessOrder","Checkout")',
type: 'POST',
success: function(result) {
if(result.success) {
alert("good " + result);
} else {
alert("bad " + result);
}
},
error: function() {
alert("request failed");
}
});
} else {
formSwitcher($(this).val());
}
});
而這個控制器:
[AcceptVerbs(HttpVerbs.Post)]
public ActionResult ProcessOrder()
{
string sURL = @"https://someUrl/?OrderId=" + Id ;
var badUrl = string.Empty;
try
{
Response.Redirect(sURL, true);
HttpWebRequest request = null;
HttpWebResponse httpWebResponse = null;
request = HttpWebRequest.Create(sURL) as HttpWebRequest;
request.Method = "GET"; // Supports POST too
httpWebResponse = (HttpWebResponse)request.GetResponse();
return Json(new { success = true });
}
catch (Exception ex)
{
badUrl = "~/Shared/error.aspx";
}
return Json(new { success = false, error = badUrl });
}
我在做什麼錯?
首先,永遠不要從try catch中返回或重定向。重定向將導致錯誤。 – 2013-04-25 22:33:12
是ajax調用控制器嗎? – Nighil 2013-04-26 04:21:20
是 - 請求失敗的提示顯示,然後控制器代碼運行 – user1069733 2013-04-26 13:12:17