0

I am trying to perform an AJAX request to a Play application on Heroku from my local machine. Currently, the 'complete' and 'error' handlers are being invoke but not the 'success'. In Opera and Firefox, my response headers are:

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 also shows the returned JSON object

Here is my code:

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
});

Other similar questions suggested changing the datatype to text or removing it altogether: neither work. I have successfully validated the returned JSON object at JSONLint.

The console log is:

Error!
error

Complete!
error

I'm not sure if it is linked, but the getAllResponseHeaders() function is returning an empty string.

Is this a cross domain error?

Any help is welcome!

Thanks

Luke
  • 776
  • 9
  • 24

1 Answers1

1

Here they suggest that it is indeed a cross domain error.

Community
  • 1
  • 1
Luke
  • 776
  • 9
  • 24