Ajax Request retourne L'erreur HTTP 500, en utilisant MVC et $.un appel ajax avec POST?

j'ai vu plusieurs fils à propos de cela, et j'ai essayé toutes les réponses ( ASP.NET MVC JsonResult return 500 )

ma requête ajax tourne à nouveau une erreur interne de 500. Si je conteste, je n'arrive même pas à agir.

Voici mon appel ajax:

$.ajax({
                    url: '@Url.Action("UpdateSortOrder", "FormItems")',
                    data: { itemToUpdateId: item.attr("id"), newParentItemId: parentItemId, newPreviousItemId: previousItemId },
                    type: 'POST',
                    success: function (data) {
                        console.log(data);
                    },
                    error: function (xhr, status, exception) {
                        console.log("Error: " + exception + ", Status: " + status);
                    }
                });

et mon action:

[HttpPost]
    public ActionResult UpdateSortOrder(Guid itemToUpdateId, Guid newParentItemId, Guid newPreviousItemId)
    {
        FormItem updatedItem = _formItemService.GetOne(x => x.Id == itemToUpdateId);

        return Json(updatedItem, JsonRequestBehavior.DenyGet);
    }

en utilisant la console chrome, ce sont les en-têtes de réponse de la réponse:

HTTP / 1.1 500 Erreur de serveur interne Cache-contrôle: privé Content-Type: text / html; charset=utf-8 Serveur: Microsoft-IIS / 7.5 X-AspNetMvc-Version: 3.0 X-AspNet-Version: 4.0.30319 X-Powered-By: ASP.NET Date:Mar, 18 Dec 2012 21: 53: 41 GMT Content-Length: 17041

Les journaux du serveur

ne montrent aucun code secondaire. Toute idée de ce que je fais de mal ici? Je préfère utiliser le POST plutôt que le GET.

Les Données Du Formulaire

itemToUpdateId:18ac5399-342e-4a39-9da1-3281a89501df

newParentItemId: null

newPreviousItemId: null

ce qui est correct.

j'ai essayé de définir le contentType à application / json et traditional = true comme dans cette question: envoyer ajax post à mvc avec "application / json; charset=utf-8" retours erreur 500 vs développeur web server

même erreur.

24
demandé sur Community 2012-12-19 02:08:21

4 réponses

Eh bien, j'ai été en mesure de comprendre ce qu'était le problème, il n'y avait rien de mal avec ma syntaxe AJAX, ou même l'action. C'était juste que mon objet retourné contenait une référence circulaire. J'ai pu voir l'erreur réelle dans la console chrome en cliquant sur la requête POST sous L'onglet Réseau, puis en visualisant l'onglet prévisualisation. Ceci a affiché le message d'erreur réel.

66
répondu SventoryMang 2012-12-18 22:51:49

Fiddler est un excellent outil pour attraper les requêtes http qui est très utile pour déboguer les réponses entre le côté client et le côté serveur. Il suffit de l'ouvrir lorsque vous soupçonner le problème dans votre navigateur, et quand l'erreur se fiddler ouvert et choisissez la demande, puis afficher ses informations brutes.

1
répondu Ibrahim Amer 2015-12-20 14:41:56

Vieux post, alternative la réponse ... Juste au cas où quelqu'un se termine ici ..

mon problème a été causé par le fait que l'action de mon contrôleur que j'appelais retournait un résultat D'action de vue partielle et que le fichier .cshtml de PartialView n'était pas publié sur le serveur (n'était pas" inclus " dans le projet Visual Studio lors de la publication).

1
répondu Chris Hammond 2017-10-30 11:07:02

si vous n'avez pas besoin de updatedItem dans le succès, alors ne pas retourner il suffit de retourner une variable simple

0
répondu user3544798 2017-06-10 05:42:05