After doing some tests on the JSON link you provided, turns out your web server does inject HTML in front of the actual content. This HTML is meant to set a cookie via JavaScript and then automatically load the actual data.
The problem is not with your JSON, but your web framework. You'll see below that the page loads aes.js
from your root directory, which is most likely used for the decryption/encryption of the cookie.
Here is the HTML returned:
<html>
<body>
<script type="text/javascript" src="/aes.js"></script>
<script>
function toNumbers(d) {
var e = [];
d.replace(/(..)/g, function(d) {
e.push(parseInt(d, 16))
});
return e
}
function toHex() {
for (var d = [], d = 1 == arguments.length && arguments[0].constructor == Array ? arguments[0] : arguments, e = "", f = 0; f < d.length; f++) e += (16 > d[f] ? "0" : "") + d[f].toString(16);
return e.toLowerCase()
}
var a = toNumbers("f655ba9d09a112d4968c63579db590b4"),
b = toNumbers("98344c2eee86c3994890592585b49f80"),
c = toNumbers("db90ed280d6dd97b2c5a2f1352115adf");
document.cookie = "__test=" + toHex(slowAES.decrypt(c, 2, a, b)) + "; expires=Thu, 31-Dec-37 23:55:55 GMT; path=/";
location.href = "http://tradersdb.rf.gd/service1.php?i=1";
</script>
<noscript>
This site requires Javascript to work, please enable Javascript in your browser or use a browser with Javascript support
</noscript>
</body>
</html>
It's most likely a bot protection plugin on your server. If you have control over your server plugins, you should disable / remove it. The only other options are to either find a better host which allows plain content access or find a way to disable this server setting.
Update:
It would appear this is a free hosting server. I would strongly suggest you move off this and you will find that your code works. If it's a free host, you probably can't disable it. In that case, this host provider is useless for you and you should search for a new one.