2014-07-24 3 views
0

Je crée une extension chrome pour les utilisateurs sur le site ROBLOX afin de permettre aux utilisateurs de rechercher des éléments via l'extension et de les acheter via l'extension. Le format pour acheter des articles sur ce site est que vous pouvez demander une page similaire à "http://m.roblox.com/Catalog/VerifyTransfer?userAssetOptionId=1641474&expectedPrice=500" dans un nouvel onglet et cliquez sur le bouton buy. Au lieu d'avoir à ouvrir un nouvel onglet pour que l'utilisateur clique sur le bouton "acheter", je souhaite pouvoir envoyer une demande POST avec le formulaire afin d'acheter l'article (évitant ainsi d'avoir à ouvrir un nouvel onglet) .Utilisation de la méthode jquery POST pour envoyer le formulaire

Le problème que je suis confronté est que je n'ai vraiment aucune idée de la façon d'envoyer des informations avec la demande POST ni quoi envoyer. J'ai le sentiment que la valeur d'entrée __RequestVerificationToken est ce qu'il faut envoyer, mais je ne suis pas entièrement sûr.

Parce que vous avez besoin d'un compte pour voir cette page VerifyTransfer ci-dessus, voici le code html pour le formulaire sur la page:

<form action="/Catalog/ProcessTransfer" method="post"> 
<div class="ui-block-a"> 
    <input name="__RequestVerificationToken" type="hidden" value="xMOEGwHMBW8FKJNOMcb7aG1PgIYgmHFYf3WpXXu3deDCNoL_jMwy0odXkz65pNSPkvRAfrmBH6i8vpJb33q9bs2aM2ybu0fDOMeFJJX3bs-NXaut9SmFBRK360tPQ6JBXLQFYxnqQVskNJevP0ukZQVY1no1"> 
    <input data-val="true" data-val-number="The field CurrencyType must be a number." data-val-required="The CurrencyType field is required." id="CurrencyType" name="CurrencyType" type="hidden" value="1"> 
    <input data-val="true" data-val-number="The field AssetID must be a number." data-val-required="The AssetID field is required." id="AssetID" name="AssetID" type="hidden" value="0"> 
    <input data-val="true" data-val-number="The field UserAssetOptionID must be a number." data-val-required="The UserAssetOptionID field is required." id="UserAssetOptionID" name="UserAssetOptionID" type="hidden" value="1641474"> 
    <input data-val="true" data-val-number="The field ExpectedPrice must be a number." data-val-required="The ExpectedPrice field is required." id="ExpectedPrice" name="ExpectedPrice" type="hidden" value="500"> 
    <input type="submit" value="Buy Now" data-theme="d"> 
</div> 
</form> 

Un exemple sur la façon d'envoyer la demande serait très apprécié!

EDIT-

C'est ce que je suis en train (qui doesnt semblent fonctionner):

$.ajax({ 
    type: "POST", 
    url: "http://m.roblox.com/Catalog/ProcessTransfer", 
    data: //the value held in '__RequestVerificationToken' 
}); 

Répondre

0

Renommer votre formulaire <form name="form">, puis ajoutez la fonction suivante:

$('form[name="form"]').on('submit', function() { 

    var formData = $(this).serializeArray(); 

    $.post({ 
       url: "http://m.roblox.com/Catalog/ProcessTransfer", 
       data: formData 

    }).success(console.log('data has been sent') 

     .error(console.log('there was an error'); 
}); 

Cela devrait faire l'affaire.

0

Essayez cette

$('input#submitButton').click(function() { 
    $.ajax({ 
     url: 'some-url', 
     type: 'post', 
     dataType: 'json', 
     data: datatopass, 
     success: function(data) { 
        alert(data); //... do something with the data... 
       } 
    }); 
}); 
0

Vous devez capturer l'événement Submit() sur le formulaire, puis afficher les données en utilisant Ajax et après les données sont envoyées pour annuler l'événement ou la forme sera toujours présenter:

$('form[name="form"]').submit(function(event) { 
    // Post the data using Ajax 
    $.ajax({ 
     url: 'some-url', 
     type: 'post', 
     dataType: 'json', 
     data: datatopass, 
     success: function(data) { 
        alert(data); //... do something with the data... 
       } 
    }); 
    // Prevent the defautl submit 
    event.preventDefault(); 
}); 
Questions connexes