2010-04-09 5 views
0

Je ne parviens pas à accéder à une action dans mon contrôleur en utilisant .ajax. Le code fonctionne sur ma machine de développement mais dès que je le place sur le serveur il donne l'erreur 401 non autorisée. Voici un extrait du code dans le fichier .aspx ...Erreur Jquery .Ajax lors de la tentative de POST de données dans ASP.NET MVC

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) { 

Mise à jour: Le seul moment où cela ne fonctionne pas est quand je passe des données JSON à l'appel Ajax, il fonctionne très bien avec des données HTML.

+0

Quelle est la définition de l'action côté serveur? Avez-vous l'AuthorizeAttribute dessus? – tvanfosson

+0

Je suis nouveau dans ce domaine. Où puis-je trouver la définition d'action latérale du serveur et l'attribut d'autorisation? –

Répondre

0

Cela n'a rien à voir avec ajax. obtenir l'URL que vous demandez et le coller dans une fenêtre de navigateur séparée et vous trouverez probablement qu'il vous donnera un 401.

Donc la réponse est de se demander pourquoi vous obtenez le 401 (configuration iis, action autoriser l'attribut, etc.)

+0

Quelle est la configuration appropriée pour IIS7? –

0

Réponse: On dirait que j'ai trouvé mon problème.

Dans mon contrôleur, j'ai la méthode suivante:

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

...}

Et EmployeeSearchItem est une classe dans son propre fichier .cs:

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

{

public string empIDSearch { get; set; } 

...}

Ma solution était de commenter l'héritage du contrôleur ci-dessus dans le fichier EmployeeSearchItem.cs et également commenter toutes les directives Using. Wow, je ne peux pas croire que cela ait pris autant de temps pour comprendre cela. J'espère que cela aidera quelqu'un d'autre aussi.

Questions connexes