因为我没有定义。我失败的地方?
代码:
function add(id,cost){ var info = { "id" : id, "cost": cost, }; $.ajax({ data: info, url: 'a.php', type: 'post', success: function (datos) { alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2); } }); }
存档.php php:
$cost=$_POST['id']*$_POST['cost'] + 137; echo json_encode(array("r1" =>$_POST['id'], "r2" => $cost));
Datos可能是一个字符串
您可以执行以下操作:
datos = JSON.parse( datos );
或者,您可以将返回类型设置为JSON:
$.ajax({
data: info,
dataType: 'json',
url: 'a.php',
type: 'post',
success: function (datos) {
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
});
为什么您认为$.ajax
会将datos
理解为JSON?您需要指定它,您可以使用几种方法来完成它。
解析它
success: function (datos) {
datos = JSON.parse(datos);
alert(datos+"\n r1: "+datos.r1+"\n r2:"+datos.r2);
}
在$.ajax
中指定自身
$.ajax({
data: info,
url: 'a.php',
type: 'post',
dataType:"json",
....
在PHP中设置头(对
header('Content-Type: application/json');
我建议你用第一个和第三个的组合。不要留下任何一块石头。
问题内容: 因此,当我打开灯箱时,我试图禁止在页面上滚动,而我发现这个确实有用的脚本非常有用。不幸的是,当我在自己的页面上使用它时,它也禁止在灯箱中滚动。我开始用警报调试代码,只是发现该事件。wheelDelta在我的页面上返回“undefined”,而在JSFiddle中,它返回-120。 问题答案: jQuery事件处理程序中的对象不能反映真实事件。是IE和Opera的非标准事件属性,可通过j
问题内容: 我正在使用以下jQuery代码: 我该如何做这样的事情: 所以我可以将返回的结果分成两个html元素? 多数民众赞成在使用的PHP,我想回显另一个语句,我可以将其放入另一个HTML元素 这有意义吗? 问题答案: 使用从PHP关联数组转换成JSON和使用,它会返回一个Javascript数组。 例: 用Javascript:
我正在尝试为discord bot执行命令,它从MySQL表中输出整数。 我尝试使用async/await、Promissions和回调来实现这一点,但结果总是一样的。在这里,我用promise再次尝试,因为在过去它不知何故起了作用。现在不会了。 下面是返回promise的函数: 下面的代码将结果赋值给Access Level变量: Catch函数捕获表示“TypeError:无法读取未定义的属性
我是JS的新手,不明白为什么我的程序中的图像没有改变。所有的变量都运行良好。下面是片段 所有的图像都被命名为1.jpg,2.jpg,3.jpg,4.jpg,直到24。这是一种很奇怪的方式,我也知道,如果有人知道更好的方式,那会更好。
我有下面的函数,它可以正确地从响应中提取图像的前缀和后缀,并生成一个可变的结果,其中包含场馆图像的url。然而,当我返回结果时,我一直没有定义。这里出了什么问题?
问题内容: 我在这段代码上遇到问题;返回值返回为“ undefined”。有什么问题? 较新的代码: 我怎么称呼它: 问题答案: 根据您的修改进行更新 解决这些问题应可使代码正常工作。 旧答案 您正在以 同步 模式调用XMLHttpRequest ,这意味着它将 阻塞 脚本,直到请求完成为止,因为您是在阻塞调用之后(即请求已经完成之后)分配回调,因此您的代码永远不会收到通知。 由于同步模式会阻止脚