gpt4 book ai didi

jquery - 如何通过html表单使用jquery、json和ajax?

转载 作者:行者123 更新时间:2023-12-01 03:08:08 26 4
gpt4 key购买 nike

当在 html 上填写表单时,我需要发送 json。我有以下 html:

<head>
<title>Insert title here</title>
</head>
<body>
<form id="form">
Nome: <input type="text" id="nome" />
Idade: <input type="number" id="idade" />
<input type="button" id="submit" value="submit"/>
</form>

以及以下js:

src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"
var arr = {
City : 'Moscow',
Age : 25
};

$(document).ready(function() {
//click on button submit
$("#submit").on('click', function() {
//send ajax
$.ajax({
url : 'http://localhost:8080/DBRest/rest/escreve',
type : "POST", // type of action POST || GET
dataType : 'json', // data type
contentType : 'application/json; charset=utf-8',
data : $("#form").serialize(), // post data || get data
data : JSON.stringify(arr)
})
});

});

我已经寻找过here , herehere .

我尝试创建一个 arr 变量来模拟填写的表单,但也没有得到任何结果。我想知道 dataType 和 contentType 之间的区别。关于这一行:

data : $("#form").serialize()

这是正确的吗? #form

周围的单引号和双引号之间存在差异

最佳答案

首先,您将 data 属性设置两次。删除数据:JSON.stringify(arr)

其次,如果您发送序列化表单,它将是 x-www-form-urlencoded,而不是 JSON,因此您应该删除 contentType 属性,因为表单编码是默认值。

那么您的 HTML input 元素缺少序列化和检索服务器上的值所需的 name 属性。

Nome: <input type="text" id="nome" name="nome" /> 
Idade: <input type="number" id="idade" name="idade" />

最后,您应该将事件处理程序 Hook 到 form 元素的 submit 事件,并调用 preventDefault() 来停止标准提交,像这样:

$("#form").on('submit', function(e) {
e.preventDefault();

$.ajax({
url: 'http://localhost:8080/DBRest/rest/escreve',
type: "POST",
dataType: 'json',
data: $("#form").serialize()
})
});

大概您还需要 successerror 处理函数(或 done()fail() 方法)来处理从请求返回的响应。

关于jquery - 如何通过html表单使用jquery、json和ajax?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40766204/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com