我创建了一个带有文本框和下拉菜单的表单,在我的代码中我创建了一个脚本,当点击"发送表单"
时会调用该脚本可以说我的字段为:firstName
,lastName
,country
(下拉列表)
这是脚本:
function f1() {
var settings = {
"async": true,
"url": "https://api.TheSite.com/v2/applications/123456789/newJson.json",
"method": "POST",
"headers": {
"x-api-key": "123456789123456",
"content-type": "application/json",
},
"processData": false,
"data": "{\r\n \"deployment\": {\r\n \"revision\": \"string\",\r\n \"changelog\": \"string\",\r\n \"description\": \"string\",\r\n \"user\": \"string\"\r\n }\r\n}"
}
$.ajax(settings).done(function(response) {
console.log(response);
alert("The Form Was Sent");
});
}
我想插入这3个变量' "数据"内的值像这样的字符串:
"data": "{\r\n \"deployment\": {\r\n \"revision\": \`firstName
\",\r\n \"changelog\": \"`lastName
依旧......
在下拉菜单中,我假设它将显示为数组。如何将变量包含在内?
答案 0 :(得分:0)
首先创建一个空对象并将数据插入其中。
接下来使用JSON.strigify()
将其转换为JSON blob
,然后再将其发送到服务器。
var data = {};
data.deployment = {};
data.deployment.revision = firstName;
data.deployment.changelog = lastName;
var settings = {
....,
data: JSON.stringify(data)
};
答案 1 :(得分:0)
由于您已经在使用jQuery来执行AJAX请求,因此您应该知道您实际上可以将本机JavaScript对象传递到请求的数据部分。您不需要将其转换为JSON字符串。如果你愿意,你可以将其字符串化。
您实际上可以建立默认请求选项,然后将它们与您要请求的数据合并。
var defaults = {
url: 'https://api.TheSite.com/v2/applications/123456789/newJson.json',
method: 'POST',
contentType: 'application/json',
headers: {
'x-api-key': '123456789123456',
},
processData: false,
async: true
};
function makeXhrRequest(config) {
var xhrRequest = $.extend(true, defaults, config);
// If you want to convert the request to a json String.
//xhrRequest.data = JSON.stringify(data);
$.ajax(xhrRequest).done(function(data, textStatus, jqXHR) {
console.log(data);
alert("The Form was sent...");
});
}
var $myForm = $('form[name="my-form"]');
makeXhrRequest({
data : {
deployment : {
revision : $myForm.find('input[name="firstname"]').val(),
changelog : $myForm.find('input[name="lastname"]').val(),
description : 'string',
user : 'string'
}
}
});
答案 2 :(得分:0)
解决
这是适合我+$("#firstName")[0].value+
的语法,这是代码:
"data":"{\r\n\deployment\: {\r\n revision\:"+"\""+$("#firstName")[0].value+"\","+"\r\n"