我有一个使用Axios Http客户端的网页。在我的网页中,我使用browser's geolocation功能获取了我的位置信息。获取我的位置后,我想发送该位置以及其他数据。为此,我构建了这样的数据对象:
navigator.geolocation.getCurrentPosition(
function(position) {
var data = {
id: 1,
user:'me',
location: position
};
})
;
然后我尝试通过Axios发送数据:
axios.put('/my-endpoint', data, options)
.then(function(res) {
console.log('success');
console.log(res);
})
;
我从此请求中得到了成功的回复。然而,这是一个误报。当我查看日志时,这很奇怪。我可以看到location
属性是一个空对象。所以,我在浏览器中做了一个console.log,我可以看到location
已正确设置。但是当我通过Fiddler发送它时,我注意到它不在那里。当它穿过电线时,它只是一个空物体。怎么样?
我怀疑在网络上发送嵌套的JavaScript对象时,我需要做一些设置或其他事情。但我没有看到任何东西。我究竟做错了什么?我用这段代码创建了一个基本的JSFiddle here。
答案 0 :(得分:1)
当您尝试发送变量时,看起来您的变量data
超出了范围。在示例中,您给出的数据是该闭包的局部变量,这意味着它在回调完成时被销毁。要解决此问题,您需要在该函数之外声明from pyspark import SparkConf, SparkContext, SQLContex
conf=SparkConf()
conf.setAppName("spark_name")
conf.set("spark.dynamicAllocation.enabled", "true")
conf.set("spark.shuffle.service.enabled", "true")
sc = SparkContext(conf=conf)
,以便axios也可以看到它。你仍然可以在回调中分配它,你必须实际但你应该在上面声明它。