javascript - 通过 AJAX 返回坐标
问题描述
我正在尝试通过 AJAX 返回值。下面是我根据我发现的一些示例汇总的代码,它似乎有效,但我认为有更好的方法吗?
(async () => {
const url = new URL("/ajax-page", window.location.origin);
const headers = new Headers([
[
"Content-Type",
"application/x-www-form-urlencoded; charset=UTF-8"
]
]);
const body = new URLSearchParams([
["sl", slug]
]);
const res = await fetch(url, {
method: "POST",
headers,
body
});
if (res.ok) {
let mkr = await res.text();
crd = mkr.split("|");
lat = crd[0],
lon = crd[1];
console.log(lat+' '+lon);
}
})();
PHP (ajax 页面)
// php magic gets values
echo $mar['lat'].'|'.$mar['lon'];
我什至需要使用(async () => {...})(); 不再?
解决方案
这些行:
lat = crd[0],
lon = crd[1];
不是变量声明(因为没有let
关键字)。它使用逗号运算符,因此相当于:
lat = (crd[0], lon = crd[1])
逗号运算符返回第二个表达式的值,因此lat
和lon
都设置为crd[1]
。
此问题的原因是您以;
而不是结束前两行,
。整个声明应该是:
let mkr = await res.text(),
crd = mkr.split("|"),
lat = crd[0],
lon = crd[1];
如果您使用 IDE 的自动缩进功能,它会表明这不是您想要的方式分组。
推荐阅读
- awk - awk 计算为较大的数字提供四舍五入的答案
- sql-server - 拥有员工当前的银行账户信息
- amazon-web-services - 如何在 Qubole 中将 --properties-file 传递给 spark-submit?
- opc-ua - 在 Milo 中写入 OPC-UA 节点时如何设置正确的数据类型?
- c++ - 通用模板函数总是返回整数值
- google-cloud-platform - Pod 地址范围限制了集群的最大大小
- jetty - 如何在码头服务器中禁用 http 选项方法
- javascript - 如何使用 expo-background-fetch 每 60 秒获取一个特定的 url?
- angular - 找不到带有路径的控件:'members -> 0 ->
- javascript - MomentJs isBetween() 函数没有返回预期结果?