我正在尝试从我的本地计算机对 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()
函数返回一个空字符串。
这是跨域错误吗?
欢迎任何帮助!
谢谢