未调用AJAX成功处理程序

时间:2012-10-05 08:39:09

标签: ajax jquery playframework-1.x

我正在尝试从本地计算机上对Heroku上的Play应用程序执行AJAX请求。目前,正在调用'complete''error'处理程序,而不是'success'。在Opera和Firefox中,我的响应头是:

HTTP/1.1 200 OK
Cache-Control: no-cache
Content-Type: application/json; charset=utf-8
Server: Play! Framework;1.2.4;prod
Set-Cookie: PLAY_FLASH=;Expires=Fri, 5-Oct-12 08:22:46 GMT;Path=/
Set-Cookie: PLAY_ERRORS=;Expires=Fri, 5-Oct-12 08:22:46 GMT;Path=/
Set-Cookie: PLAY_SESSION=;Expires=Fri, 5-Oct-12 08:22:46 GMT;Path=/
Content-Length: 2295
Connection: keep-alive

Opera还会显示返回的JSON对象

这是我的代码:

var url = "http://myurl.com"

$.ajax({
    'complete': function (jqXHR, status) {
        console.log('Complete!');
        console.log(status);
        console.log(jqXHR.getAllResponseHeaders());
    },
    'dataType': "application/json",
    'error': function (jqXHR, status, error) {
        console.log('Error!');
        console.log(status);
        console.log(error);
    },
    'success': function (data, status, jqXHR) {
        console.log('Success!');
        console.log(status);
        console.log(data);
    },
    'type': 'GET',
    'url': url
});

其他类似的问题建议将数据类型更改为文本或完全删除它:既不起作用。我已在JSONLint成功验证了返回的JSON对象。

控制台日志是:

Error!
error

Complete!
error

我不确定它是否已链接,但getAllResponseHeaders()函数返回一个空字符串。

这是跨域错误吗?

欢迎任何帮助!

由于

1 个答案:

答案 0 :(得分:1)

Here他们认为这确实是一个跨域错误。