通过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])

逗号操作符返回第二个表达式的值,因此latlon都被设置为crd[1]

这个问题的原因是您以;而不是,结束前两行。整个声明应该是:

let mkr = await res.text(),
crd = mkr.split("|"),
lat = crd[0],
lon = crd[1];

如果你使用IDE的自动缩进功能,它会显示这不是你想要的方式分组。

await只能在async函数中使用。你无法避免。异步函数隐式地返回一个promise,因此其他异步函数可以等待它们的结果。

相关内容

  • 没有找到相关文章

最新更新