尝试在ASP.NET MVC中POST数据时发生Jquery.Ajax错误
问题描述:
我无法使用.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数据。
答
这与ajax没有任何关系。得到你请求的URL并将其粘贴到一个单独的浏览器窗口中,你很可能会发现它会给你一个401.
所以,答案是要了解你为什么要获得401(iis配置,行动授权属性等)
+0
什么是IIS7的正确配置? – 2010-04-09 20:42:46
答
答:看起来我发现我的问题。
在我的控制器,我有以下方法:
[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指令。
哇,我不敢相信花了这么长时间才弄清楚。希望这也能帮助别人。
什么是服务器端动作定义?你有它的AuthorizeAttribute? – tvanfosson 2010-04-09 20:34:22
我是新来的,我可以在哪里找到服务器端操作定义和授权属性? – 2010-04-09 20:40:17