如何使用Prototype.js发布到PHP脚本

时间:2011-03-23 00:31:24

标签: javascript html5 prototypejs

我是prototype.js的新手,并尝试对PHP脚本执行简单的GET请求。 Javascript节目执行以下操作:

  1. 获取用户纬度和经度
  2. 将lat / long传递给doStuff()函数
  3. 将lat / long传递给我的PHP脚本(savecoords.php)进行保存。
  4. 由于某种原因,即使我确定我正在使用支持HTML5的浏览器来实现Geolocation API,这个代码甚至都没有执行。这是代码:

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            doStuff(position.coords.latitude, position.coords.longitude);
        });
    }
    
    function doStuff(mylat, mylong) {
        new Ajax.Request('savecoords.php', {
            method: 'get',
            parameters: {
                'latitude': myLat,
                'long': myLong
            }
        }
    }
    

    有什么想法吗?

1 个答案:

答案 0 :(得分:0)

为了找出未调用函数的原因,您可能需要传入error callback。例如:

if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(yourFunction, function (error) {
        console.log(error.message, error.code);
    });
}

这将为您提供错误代码和消息,以缩小未调用函数的原因。 code将返回多个值中的一个,message应提供更多详细信息。从上面链接的MDC页面:

  

UNKNOWN_ERROR(数值0)

     

由于此界面中任何其他错误代码的定义未涵盖错误,位置获取过程失败。

     

PERMISSION_DENIED(数值1)

     

位置获取过程失败,因为应用程序源无权使用Geolocation API。

     

POSITION_UNAVAILABLE(数值2)

     

无法确定设备的位置。位置获取过程中使用的一个或多个位置提供程序报告了导致进程完全失败的内部错误。

     

TIMEOUT(数值3)

     

在实现成功获取新的Position对象之前已经过了指定的最长时间。

我确信这并不能完全解决您的问题,但它应该为您提供必要的洞察力以取得一些进展。