2010-07-15 2 views
0

J'utilise jQuery pour publier des données sur un site mvc asp.net. La publication a lieu avec succès et l'action du contrôleur cible est atteinte lorsque je la débogue dans Visual Studio, mais il semble que les données que je transmets ne sont pas transférées. Je ne vois pas non plus en Request.Params ou Request.Headers Mon poste est la suivante:jQuery Variables POST AJAX non accessibles sur le serveur

$.ajax({ 
     url: "http://localhost/PlatformPortal/Buyers/Account/SignIn", 
     headers: {signature: authHeader}, 
     type: "POST", 
     // tried this data: authHeader 
     success: function() { alert('Success!'); } 
    }); 

Suis-je manque quelque chose ici?

+0

Qu'est-ce que 'authHeader'? –

Répondre

4

vous devez poster vos données dans la data propriété:

$.ajax({ 
    url: "http://localhost/PlatformPortal/Buyers/Account/SignIn", 
    data: {signature: authHeader}, 
    type: "POST", 
    // tried this data: authHeader 
    success: function() { alert('Success!'); } 
}); 
+0

Salut Jason, j'ai essayé ce qui suit: - .ajax $ ({ url: "http: // localhost/PlatformPortal/Acheteurs/compte/SignIn", données: {signature: AuthHeader}, le type : "POST" , succès: function() {alert ('Success!' + AuthHeader);} }); Toujours rien du côté serveur. Y a-t-il quelque chose de particulier que je devrais examiner dans le type de demande? Je vérifie Request.Params – Cranialsurge

+0

si vous avez firebug, quand le post se produit, vérifiez l'onglet "Post" pour voir ce que vous avez envoyé au serveur. il peut s'agir d'un problème lié à MVC lorsque vous ne spécifiez pas correctement ce qu'il faut lier. – Jason

2

headers n'est pas une option valable pour $.ajax(), vous voulez data à la place, comme ceci:

$.ajax({ 
    url: "http://localhost/PlatformPortal/Buyers/Account/SignIn", 
    data: {signature: authHeader}, 
    type: "POST", 
    success: function() { alert('Success!'); } 
}); 

Si vous voulez définir les en-têtes, vous devriez le faire dans le gestionnaire d'événements beforeSend, comme ceci:

$.ajax({ 
    url: "http://localhost/PlatformPortal/Buyers/Account/SignIn", 
    beforeSend: function(xhr) { 
    xhr.setRequestHeader("signature", authHeader); 
    }, 
    type: "POST", 
    success: function() { alert('Success!'); } 
});