2010-04-09 64 views
0

我無法使用.ajax訪問控制器中的操作。該代碼適用於我的開發機器,但只要將其放置在服務器上,就會出現401 Unauthorized錯誤。下面是在.aspx文件中的代碼片段...嘗試在ASP.NET MVC中POST數據時發生Jquery.Ajax錯誤

var encoded = $.toJSON(courseItem); 


    $.ajax({ 
     url: '<%= Url.Action("ViewCourseByID", "Home") %>/', 
     type: "POST",       
     dataType: 'json', 
     data: encoded, 
     //contentType: "application/json; charset=utf-8", 
     success: function(result) { 

更新:這也不行唯一的一次,當我通過JSON數據的Ajax調用,它正常工作與HTML數據。

+0

什麼是服務器端動作定義?你有它的AuthorizeAttribute? – tvanfosson 2010-04-09 20:34:22

+0

我是新來的,我可以在哪裏找到服務器端操作定義和授權屬性? – 2010-04-09 20:40:17

回答

0

這與ajax沒有任何關係。得到你請求的URL並將其粘貼到一個單獨的瀏覽器窗口中,你很可能會發現它會給你一個401.

所以,答案是要了解你爲什麼要獲得401(iis配置,行動授權屬性等)

+0

什麼是IIS7的正確配置? – 2010-04-09 20:42:46

0

答:看起來我發現我的問題。

在我的控制器,我有以下方法:

[JsonFilter(Param = "course", JsonDataType = typeof(EmployeeSearchItem))] 
public ActionResult ViewCourseByID(EmployeeSearchItem course) 
{ 

...}

而且EmployeeSearchItem是在自己的.cs文件中的類:

namespace EducationAssistanceMVC.Models 
{ 
public class EmployeeSearchItem //: Controller 

{

public string empIDSearch { get; set; } 

...}

我的解決方案是在EmployeeSearchItem.cs文件中註釋上述Controller的繼承,並註釋掉任何Using指令。

哇,我不敢相信花了這麼長時間才弄清楚。希望這也能幫助別人。

相關問題