JSON Get request using JQuery (cross-domain)

ajax, javascript, jquery, json

Solution

The response from the API is JSON, not JSONP, so just changing the data type doesn't help.

You can use a proxy that makes the request and turns the JSON into JSONP:

$(document).ready(function () {
    $.ajax({
        type: 'GET',
        url: 'http://jsonp.guffa.com/Proxy.ashx?url=pubapi.cryptsy.com%2fapi.php%3fmethod=marketdatav2',
        dataType: 'jsonp',
        success: function (data) {
            console.log(data);
        }
    });
});

Demo: http://jsfiddle.net/6Qcq2/1/

Problem

I'm trying to make a simple JSON get request to an API on a domain that I do not control. My code is simply: ``` $(document).ready(function () { $.ajax({ type: 'GET', url: 'http://pubapi.cryptsy.com/api.php?method=marketdatav2', success: function (data) { console.log(data); } }); }); ``` But since that is a cross-domain request, I am getting this error in the Chrome Console: `XMLHttpRequest cannot load http://pubapi.cryptsy.com/api.php?method=marketdatav2. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.` And when I try to add the parameter `dataType: 'jsonp'` the Console returns with this error: Uncaught SyntaxError: Unexpected token : But when I examine the Network tab in Chrome I see that under Headers the Status Code is 200 OK and I can actually see the full response in the Response tab, but the console is still showing the "Unexpected Token :" error and the JQuery JSON request is still failing. Here's the JS Fiddle link: http://jsfiddle.net/6Qcq2/ You can see the same results I have tried running the url on http://www.hurl.it and it shows me Status OK and the response as well, so I must be doing something wrong. I've pretty much wasted the whole day trying to figure out how to get around this problem. Your help is very much appreciated.

Original source

Related problems