这是我的JS代码:
$.when(d1, d2).done(function(v1, v2) {
var url = v1;
var xhr = new XMLHttpRequest();
xhr.open("POST", url, true);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
console.log(url);
}
};
xhr.send("deployment_preference_set_fleet_health_attributes_concurrent_hosts_percentage=31");
});
经过一定的处理后,我会得到一个会传递给v1
的网址。
相应网址的HTML内容
<input id="deployment_preference_set_fleet_health_attributes_concurrent_hosts_percentage" max="100" min="0" name="deployment_preference_set[fleet_health_attributes][concurrent_hosts_percentage]" size="3" step="any" type="number" value="30.0" />
% or less of the hosts in the fleet can be deployed to at a time.
我想要的是使用特定值更新字段deployment_preference_set_fleet_health_attributes_concurrent_hosts_percentage
。
我尝试过使用xmlhttprequest,但它无效。
它正在使用console.log(v1),但我认为xhr.send()无效,因为我试图更新的页面没有得到更新
有关如何更新该特定字段数据的任何建议。
答案 0 :(得分:0)
<强>问题强>
您的语法已关闭。我没有看到您将ajax请求的结果分配给您的目标DOM输入对象。
<强>建议强>
使用Jquery进行AJAX调用。如果您使用xhr,则需要在不同的浏览器中处理不同的格式,这可能是您问题的一部分。
<强>格式强>
$.ajax({
type: "POST",
url: url,
data: data,
success: success,
dataType: dataType
});
示例强>
$.post( "ajax/test.html", function( responseData ) {
$( "#deployment_preference_set_fleet_health_attributes_concurrent_hosts_percentage" ).val( responseData );
});
参考 - &gt; https://api.jquery.com/jquery.post/
答案 1 :(得分:0)
您没有设置Content-Type标头。使用POST方法时,需要设置Content-Type标头(通过setRequestHeader
对象的XMLHttpRequest
方法),否则无法从另一端的请求正文中检索数据。
var xhr = new XMLHttpRequest(); //make xhr
xhr.open('POST', url, true);
xhr.setRequestHeader('Content-Type', 'x-www-form-urlencoded');// <-- do this!
xhr.send('my_data=hi&your_data=no');
在您的情况下,您需要做的就是在执行xhr.send()
之前的某个时刻定义Content-Type标头。