jQuery ajax相关错误



我有一些问题与ajax jquery调用。

function postSomeData() {
    console.log("LOG: in f'n postSomeData");
    $.ajax({
        url:api_endpoint,
        type:'POST',
        beforeSend: function(xhr) {
            xhr.setRequestHeader("Authorization","Basic " + auth_encoded);
        },
        data:some_data,
        success:function(data){
            console.log("derp");
        },
        error: function(jqXHR, statusText, errorThrown) {
            console.log("herp");
        }
    });
}

这段代码应该每隔几分钟运行一次(编辑:日志语句按预期每分钟出现一次),但是从来没有执行过回调,服务器也从来没有注册请求。在ajax函数运行之前的代码和其他函数使用非常相似的格式也执行(唯一的区别是发送的数据),我无法确定为什么。

如果我尝试强制代码运行几次,我有时会得到这个错误:

TypeError: Result of expression 'obj' [null] is not an object.

注意:这是发生在jquery 1.7.1, jquery mobile 1.0, phonegap 1.1.0在ios 4.3模拟器。使用were .

完成调试。编辑:

api_endpoint是一个字符串,包含服务器的http地址(用于开发,我的计算机的IP地址)。

obj不是我创建的对象,我创建的唯一对象是some_data

编辑2:

下面是'some_data'的内容

{"coords":{"latitude":43,"longitude":-79,"altitude":0,"accuracy":150,"heading":-1,"speed":0,"altitudeAccuracy":-1},"timestamp":13232}

您是否首先使用Firebug的Net选项卡来确认正在发出请求?也许你的URL不正确?尝试设置Ajax调用的timeout,看看error回调是否正常工作。

在黑暗中工作一点(参见我对这个问题的评论),但是如果api_endpoint包含一个URL,它不是在相同的起源作为这个代码运行的页面,你可能会碰到同源策略限制 —我没有做过任何Phonegap编程,我不知道SOP是否或在多大程度上适用。这篇文章说Phonegap禁用了移动Safari上的SOP;我不知道它是否可以支持其他平台。

最新更新