Żądanie pobierania JSON przy użyciu JQuery (między domenami)


Próbuję zrobić prosty JSON uzyskać prośbę do API w domenie, którego nie kontroluję.
Mój kod jest prosty:
$(document).ready(function () {
$.ajax({
type: 'GET',
url: 'http://pubapi.cryptsy.com/api.php?method=marketdatav2',
success: function (data) {
console.log(data);
}
});
});

Ale ponieważ jest to żądanie międzydomenowe, w konsoli Chrome pojawia się ten błąd:
XMLHttpRequest cannot load [url=http://pubapi.cryptsy.com/api.php?method=marketdatav2.]http://pubapi.cryptsy.com/api. ... tav2.[/url] No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://fiddle.jshell.net' is therefore not allowed access.
A kiedy próbuję dodać parametr
dataType: 'jsonp'
, konsola wraca z tym błędem:

Uncaught SyntaxError: Nieoczekiwany token:

Ale kiedy patrzę na kartę Sieć w Chrome, widzę, że pod nagłówkami kod stanu to 200 OK i widzę pełną odpowiedź na karcie Odpowiedź, ale konsola nadal wyświetla błąd „Nieoczekiwany token:” i JQuery JSON żądanie nadal nie jest wykonywane.
Oto link banddle:

http://jsfiddle.net/6Qcq2/
http://jsfiddle.net/6Qcq2/
możesz zobaczyć te same wyniki
Próbowałem uruchomić adres URL

http://www.hurl.it
http://www.hurl.it
i pokazuje mi status OK i odpowiedź, więc chyba robię coś nie tak.
Spędziłem cały dzień, próbując dowiedzieć się, jak rozwiązać ten problem.
Doceniam twoją pomoc.
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Odpowiedź z interfejsu API to JSON, a nie JSONP, więc zwykła zmiana typu danych nie pomoże.
Możesz użyć serwera proxy, który wysyła żądanie i zamienia JSON na 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);
}
});
});

Próbny:

http://jsfiddle.net/6Qcq2/1
http://jsfiddle.net/6Qcq2/1/
/
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Musisz skonfigurować jakiś typ skryptu proxy. z powodu

politycy z tego samego źródła
http://en.wikipedia.org/wiki/Same-origin_policy
nie możesz wykonać połączenia AJAX do zasobu znajdującego się w domenie zewnętrznej. Możesz obejść ten problem, konfigurując prosty skrypt PHP, który będzie żądał danych za Ciebie. Następnie przekierujesz wywołanie ajax do swojego skryptu (który będzie hostowany w Twojej domenie). Typ zawartości dla tego zasobu to application/json, więc wskazanie jQuery na jsonp nie pomoże.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Żądania AJAX nie działają między domenami ze względów bezpieczeństwa. Ponieważ czytasz dane JSON, możesz wymusić

JSONP
http://api.jquery.com/jquery.getjson/#jsonp
praca.
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Czy odpowiedź JSONP nie powinna być skierowana bezpośrednio na wywołanie zwrotne?
Co to jest JSONP?
https://coderoad.ru/2067472/

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się