脚本代码:
function submitdata(){
alert("hi");
//var formRequest = JSON.stringify($("#submitdatafrm").serializeArray());
var test = JSON.stringify({
"firstName": $('#fname'),
"email":$('#email'),
});
console.log(test);
$.ajax({
type: "POST",
contentType: 'application/json',
url: "http://localhost:8080/formdataserver/rest/reqdemo/add",
data: test ,
dataType:"text",
success:successmethod,
error: function(data,status) {
alert("Error "+status);
}
});
}
function successmethod(data){
alert("sucess")
}
Html代码:
<form class="form-horizontal" id="submitdatafrm">
<div class="form-group">
<label class="col-md-4 control-label" for="fname">First Name</label>
<div class="col-md-6"><input id="fname" name="fname" type="text" placeholder="First Name" class="form-control input-md"></div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="email">Email</label>
<div class="col-md-6"><input id="email" name="email" type="email" placeholder="Email" class="form-control input-md"></div>
</div>
<div class="form-group">
<label class="col-md-4 control-label" for="button"></label>
<div class="col-md-4"><a href="javascript:requestdemo();">Request a demo now</a></div>
</div>
</fieldset>
</form>
在上面的代码中,当我通过json静态传递值(硬编码值)时,它工作正常,值存储在数据库中。但是当我动态传递值(动态值通过表单)时,值不会传递并显示错误警告消息??在json代码中做错了什么?任何帮助都会被赞赏...
答案 0 :(得分:0)
以下内容足以以表格形式发送所有值:
data: $('#submitdatafrm').serialize()
您需要以JSON身份发送特定原因吗?这应该将名称/值转换为JSON:
data: JSON.stringify($('#submitdatafrm').serialize())
注意:您需要确保您的目标网址位于同一网站上以避免跨网站问题(为什么您有绝对网址?)。
您的示例数据使用firstname
,但输入名为fname
,因此它可能只是一个拼写错误,但没有很难看到的服务器代码:)
从您的类代码中我看到服务器期望值为firstName
,因此如果您只想serialize
表单,则需要name="firstname"
(不是{{1} }}):
fname
作为评论中提到的<input id="fname" name="firstname" type="text" placeholder="First Name" class="form-control input-md">
,您的示例代码实际上并不是发送字段的值,而是发送整个jQuery对象。应该是:
CBroe