2017-02-07 1 views
2

Je n'ai plus d'idées sur la façon de résoudre ce problème. Le nom de l'action n'est pas disponible sur le serveur de production pour une raison quelconque. Je continue à obtenir 500 erreur interne du serveur. J'ai essayé d'utiliser postman et restClient mais chaque outil retourne la même erreur pour live et fonctionne pour localhost. Qu'est-ce que je fais mal?L'action NopCommerce introuvable sur la production fonctionne sur localhost

Note: Tout ce que j'ai commenté est ce que j'ai déjà essayé.

Contrôleur client - Code d'action:

//[AcceptVerbs(HttpVerbs.Get)] 
    [NopHttpsRequirement(SslRequirement.Yes)] 
    //available even when navigation is not allowed 
    [PublicStoreAllowNavigation(true)] 
    [HttpPost] 
    public ActionResult VerificationPin(string phoneNumber) 
    { 
     return Json(new {result = true, message = "Inside pin"}); 
    } 

code Ajax pour appeler la fonction ci-dessus:

var _data = { "phoneNumber": $("#Phone").val() }; 
             $.ajax({ 
              //cache: false, 
              type: "POST",//"GET", 
              url: '@Url.Action("VerificationPin", "Customer")', 
              dataType: "json", 
              //data: JSON.stringify(_data), 
              data: _data, 
              success: function (data) { 
               if (data.result) 
                alert("Enter the PIN code below."); 
              }, 
              error: function (err) { 
               alert(data.message); 
              } 
             }); 
+0

Votre code actuel tente une requête POST ajax, mais votre méthode d'action n'est pas décorée avec Httppost! – Shyju

+0

'500 erreur de serveur interne' signifie une exception est levée (si l'action n'a pas été trouvé, vous obtiendrez un 404 introuvable) –

+0

@Shyju Je l'ai mentionné dans la note que j'ai tout essayé commenté. Au dessus du code JS était pour 'post' et ensuite j'ai utilisé 'get' aussi. Lorsque j'ai basculé entre les méthodes, j'ai mis à jour le code du serveur en conséquence. Les deux ne fonctionnaient pas. – Hitin

Répondre

1

est la solution Ici, je reçois

[NopHttpsRequirement(SslRequirement.Yes)] 
    //available even when navigation is not allowed 
    [PublicStoreAllowNavigation(true)] 
    [HttpPost, ActionName("VerificationPin")] 
    public ActionResult VerificationPin(string phoneNumber) 
    { 
     return Json(new { result = true, message = "Inside pin" }); 
    } 

Une la ajax

 var postData = { phoneNumber: "01683715481" } 

     $.ajax({ 
      type: "POST", 
      url: '@Url.Action("VerificationPin", "Customer")', 
      data: postData, 
      success: function (data) { 
       if (data.result) 
        alert("Enter the PIN code below."); 
      }, 
      error: function (err) { 
       alert(data.message); 
      } 
     }); 
+0

Cela ne fonctionne pas non plus, je l'ai essayé, toujours le même problème. :( – Hitin

+0

Ok. Avez-vous essayé en enlevant [NopHttpsRequirement (SslRequirement.Yes)] // disponible même lorsque la navigation est interdite [PublicStoreAllowNavigation (true)] [HttpPost, ActionName ("VerificationPin")] –