我正在为网站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'
});
答案 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();
});