在AJAX JSON POST请求中使用全局变量值
问题描述:
我试图做一个AJAX调用来发布一些JSON到我的Elasticsearch实例。无论如何,我可以在'数据'请求中使用全局变量值吗?在AJAX JSON POST请求中使用全局变量值
像下面这样的东西?
$(document).ready(function() {
$('#Log-submit').on('click', function(e) {
e.preventDefault();
var btn = $(e.target);
btn.attr("disabled", "disabled"); // disable button
$.ajax({
data: JSON.stringify({"name" : "#div.Name"}), //use global variable value in JSON POST request
dataType: 'json',
processData: false,
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'http://my-API.com:9200/escalations/'
});
});
});
答
从它听起来好像你要选择的元素#div.Name
然后发送值(假设它是一个<input />
元素)在AJAX请求的评论你的描述。请注意,这是与全局变量不同的逻辑,但仍然很容易实现。
要你需要什么,你需要选择要素,然后得到它的val()
,就像这样:
$.ajax({
data: { name: $('#div.Name').val() },
dataType: 'json',
type: 'POST',
contentType: "application/json; charset=utf-8",
url: 'http://my-API.com:9200/escalations/'
});
另外请注意,我删除processData
因为它设置为false
被这意味着你需要编码的JSON手动,这是jQuery将为你做的冗余,给出正确的contentType
。
你当然可以在AJAX请求中使用全局变量 - 除非你的代码没有这样做。你只是发送'#div.Name'字符串文字。您是否尝试发送该元素的文本或某个属性?另外,如果这是跨域请求,请确保其他域返回CORS标头。 –
$('#div.Name')。val() - 这是否工作? –
我有一个值取自“#div.Name”说它的'约翰史密斯'我想发送POST请求,如下更新我的ES索引。 “name”:“John Smith” – Putters