gpt4 book ai didi

jQuery.ajax() 的 Javascript 替代方案 - 面临错误

转载 作者:行者123 更新时间:2023-12-02 15:58:27 26 4
gpt4 key购买 nike

这是 JS 对象

var datas = {
name: "xyz",
age:21,
}

var datas2 = JSON.stringify(datas);

下面的 AJAx 请求正确传递数据

 $(function(){
$.ajax({
url:'two.php',
type:'POST',
dataType:'html',
data:{data:datas2}
});
});

开发者工具中的响应:

Array
(
[data] => {"name":"xyz","age":21}
)

现在尝试使用Javascript AJAX Reuest

var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{

}
}
xmlhttp.open("POST","two.php",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
// xmlhttp.setRequestHeader("Content-type","application/json");
xmlhttp.send(datas2);

开发者工具中的响应:

Array
(
[{"name":"xyz","age":21}] =>
)

我哪里出错了?

最佳答案

您正在发送两个不同的值。 jQuery 会将对象 {data: datas2} 转换为字符串

data={"name":"xyz","age":21}

xmlhttp.send(datas2)只会发送字符串

{"name":"xyz","age":21}

差别很大啊!在第二种情况下,{"name":"xyz","age":21} 被视为参数name,而不是value,即您使用开发人员工具看到的内容。

如果你想发送相同的有效负载,你必须这样做

xmlhttp.send('data=' + datas2')

关于jQuery.ajax() 的 Javascript 替代方案 - 面临错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409013/

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