使用jquery POST方法发送表单

时间:2014-07-24 18:06:22

标签: javascript jquery html post

我正在为网站ROBLOX上的用户制作Chrome扩展程序,以允许用户通过扩展程序搜索项目,然后通过扩展程序购买。在此网站上购买商品的格式是,您可以申请类似于" http://m.roblox.com/Catalog/VerifyTransfer?userAssetOptionId=1641474&expectedPrice=500"的页面。在新标签页中,然后点击buy按钮。而不必为用户打开新标签,必须单击"购买"按钮,我希望能够通过表单发送POST请求以便购买该项目(从而避免打开新标签页)。

我面临的问题是,我真的不知道如何使用POST请求发送信息以及发送什么信息。我觉得__RequestVerificationToken输入值是要发送的内容,但我并不完全确定。

因为您需要一个帐户才能查看上面的VerifyTransfer页面,所以这里是页面上表单的html:

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

非常感谢有关如何发送请求的示例!

编辑 -

这就是我正在尝试的(这似乎不起作用):

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

3 个答案:

答案 0 :(得分:0)

重命名您的表单<form name="form">,然后添加以下功能:

$('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');
});

这应该可以解决问题。

答案 1 :(得分:0)

试试这个

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

答案 2 :(得分:0)

您必须在表单上捕获事件Submit()然后使用Ajax发布数据,并在发送数据后取消事件或表单仍将提交:

$('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();
});