2014-11-06 17 views
1

我有一個Ajax調用工作:阿賈克斯無法找到服務器上的行動,但當地

$(document).ready(function() { 
     $("form#form").submit(function (e) { 
      var request = $.ajax({ 
       type: "POST", 
       url: '/Admin/SecureLogin/', 
       data: { tdn: $('#tdn').val(), pw: $('#pw').val(), gn: $('#gn').val() }, 
       success: function (data) { 
        if(data == "Login failed"){ 
         $('#error').text("Tên đăng nhập hoặc mật khẩu không đúng"); 
        } 
        if(data == "OK"){ 
         window.location.replace("/Admin/Home"); 
        } 
       } 
      }); 
      request.fail(function (jqXHR, textStatus) { 
       alert("Request failed: " + textStatus); 
      }); 
      e.preventDefault(); // this is better than "return false" 
     }); 
    }); 

和控制器:

public class AdminController : Controller 
{ 
[HttpPost] 
    public string SecureLogin(string tdn, string pw, string gn) 
    { 
     Car4RentContext db = new Car4RentContext(); 
     var query = (from l in db.Account where l.UN == tdn && l.PW == pw select l).SingleOrDefault(); 
     if (query != null) 
     { 
      if (gn == "") 
      { 
       FormsAuthentication.SetAuthCookie(query.UniqueId.ToString(), false); 
      } 
      else 
      { 
       FormsAuthentication.SetAuthCookie(tdn, true); 
      } 
      //return RedirectToAction("Home","Admin"); 
      return "OK"; 
     } 
     else 
     { 
      return "Login failed"; 
      //return View(); 
     } 
    } 
    public ActionResult Home() 
    { 
     return View(); 
    } 
} 

當我測試本地機器上,這阿賈克斯工作做好。但是,當我部署我的主機的網站,我登錄,它總是返回:

POST http://example.com/Admin/SecureLogin/ 404(未找到)

我已經閱讀了這個問題:can't find action only on live server, works fine in local server但它不和我一起工作。

這是我的觀點:

 <form id="form" class="form-vertical login-form" novalidate="novalidate" style="display: block;"> 
      <h3 class="form-title">Thông tin đăng nhập</h3> 

      <div class="form-group"> 
       <div class="input-group"> 
        <div class="input-group-addon"><span class="glyphicon glyphicon-user"></span></div> 
        <input id="tdn" class="form-control" type="text" name="tdn" placeholder="Tên đăng nhập"> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div class="input-group"> 
        <div class="input-group-addon"><span class="glyphicon glyphicon-link"></span></div> 
        <input id="pw" class="form-control" type="password" name="mk" placeholder="Mật khẩu"> 
       </div> 
      </div> 
      <div class="form-group"> 
       <div id="error" class="input-group" style="color:red"> 
       </div> 
      </div> 
      <div class="form-actions"> 
       <div class="pull-left"> 
        <input id="gn" type="checkbox" name="ghinho"> <span>Ghi nhớ</span> 
       </div> 
       <button class="submit btn btn-primary pull-right"> 
        Sign In <span class="glyphicon glyphicon-chevron-right"></span> 
       </button> 
      </div> 
     </form> 
    </div> 

這個錯誤任何想法?

回答

0

最後,我發現它:)

的問題是:當我創建新的行動或做一些修改,並把文件上傳到服務器,我忘了建立它。在本地,我運行(Crtl + f5),項目是自動建立的,所以它在本地而不是在服務器上工作。

解決方案:每當我改變一些東西時,我會上傳更改後的文件,並在bin dicrectory中構建。一切工作就像一個魅力:)