Here is a quick and dirty solution. Instead of outputting JSON_CALLBACK({ date:'2013-05-15T08:53:51.747Z' }) you can try angular.callbacks._0({ date:'2013-05-15T08:53:51.747Z' }) . I believe this is a bug in Angular.
An alternative is to request your URL as follows:
$http({ method: 'JSONP', url: 'https://something.com/' + '?callback=JSON_CALLBACK' + '&otherstuffs' });
PS. If you use php backend, I noticed that changing the php file name sometimes has a positive result (for example, instead of using index.php we can try api.php). Although this seems completely random (which name works and vice versa) - I think this is due to the way Angular reads the json url.
It seems that the reason for this unsuccessful error is because Angular will replace JSON_CALLBACK with angular.callbacks._0 , but sometimes this can happen due to its URL interpreter.
Also, even if it ?callback=angular.callbacks._0 , the server you are using may not support ?callback=angular.callbacks._0 in the URL (which is common among servers).
source share