Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript-AJAX:拾取两个对象作为响应_Javascript - Fatal编程技术网

JavaScript-AJAX:拾取两个对象作为响应

JavaScript-AJAX:拾取两个对象作为响应,javascript,Javascript,我有一个包含两个div的HTML页面: 这里有一些初始内容 还有一件事 我有一个JavaScript AJAX函数,可以发送请求。响应返回包含两个对象的页面,例如段落: 第一段的内容 第二段的内容 如何调整脚本以实现将响应中的第一个_段落插入第一个_div,并将响应中的第二个_段落插入第二个_div 如果要使用$.ajax() 如果服务器返回这样的对象 { para1: "This is paragraph 1 ...", para2: "Thi

我有一个包含两个div的HTML页面:

这里有一些初始内容
还有一件事
我有一个JavaScript AJAX函数,可以发送请求。响应返回包含两个对象的页面,例如段落:

第一段的内容

第二段的内容

如何调整脚本以实现将响应中的第一个_段落插入第一个_div,并将响应中的第二个_段落插入第二个_div


如果要使用
$.ajax()

如果服务器返回这样的对象

{
    para1: "This is paragraph 1 ...",
    para2: "This is paragraph 2 ..."
}
p.S:要使用ajax,您需要在HTML页面中添加以下内容

我想你的回答是直白的:

第一段的内容

第二段的内容

您可以将响应解析为DOM元素,并将内容分配给以后需要的元素

var xhttp=new-XMLHttpRequest();
xhttp.onreadystatechange=函数(){
如果(xhttp.readyState==4&&xhttp.status==200){
//声明一个元素以将响应和解析存储为DOM元素。
var el=document.createElement(“html”);
el.innerHTML=this.responseText;
var fp=查询选择器(“第一段”);
var sp=查询选择器(“第二段”);
document.getElementById(“first_div”).appendChild(fp);//将响应的第一段放在这里;
document.getElementById(“second_div”).appendChild(sp);//将响应的第二段放在这里
}
};
更新: 将
getElementById
更改为
querySelector

发件人:

var fp=el.getElementById(“第一段”);
var sp=el.getElementById(“第二段”);

var fp=el.querySelector(“第一段”);
var sp=查询选择器(“第二段”);

正如我在评论中提到的(也是@uncentral推荐的),您可以使用

在下面的示例中,我将从中获得响应,因为我不知道您使用的源代码

示例#1(获取文本):

const fetchData=async()=>(等待获取('https://jsonplaceholder.typicode.com/todos/1)。text();
fetchData()
。然后(数据=>{
first_div.innerHTML=数据;
second_div.innerHTML=数据;
});
这里有一些初始内容

还有一件事
当我们不知道响应是什么样子时,很难帮助您。您需要解析
xhtp.responseText
并将文本拆分到某个位置。另外,建议您尝试FetchAPI而不是XMLHttpRequest响应是什么样子的?是JSON吗?响应如我前面所述:只是纯文本,没有JSON。您可以使用
fetch
而不是
XMLHttpRequest
。这会更简单。我是一个初学者,所以我在这里遵循AJAX教程:。你能扩展你的答案吗?他们没有在那个网站上提到
fetch
。与
XMLHttpRequest
相比有什么好处?这几乎是完美的,因为它消耗了我提到的响应。但是,我得到一个错误:
el.getElementById不是XMLHttpRequest.xhttp.onreadystatechange的函数。我觉得变量
el
没有该方法?只能在全局
文档中调用
getEelementById
方法之后的变量。对于我的自定义元素
el
我可以使用
var fp=el.querySelector(“第一段”);var sp=查询选择器(“第二段”)-有效。但是非常感谢你的帮助,谢谢。我更新了我的答案。谢谢。随着时间的推移,我将尝试改进这些功能。我知道有一个比我更简单的AJAX调用,但我只是一个初学者。服务器返回纯文本响应。非常感谢。这看起来确实更简单、更有效。我将练习并考虑替换我的代码。请考虑接受和/或支持我的答案,如果它对你有帮助。谢谢。我设法用你的解决方案替换了我的代码。我支持你的答案,因为你的答案提供了最好的解决方案,但被接受的答案恰恰是在不修改代码结构的情况下回答问题。
$.ajax({
    url: "//page url here",
    method: "GET"
}).done((response) => {
    document.getElementById("first_div").innerHTML = response.para1,
    document.getElementById("second_div").innerHTML = response.para2
});
{
    para1: "This is paragraph 1 ...",
    para2: "This is paragraph 2 ..."
}