Как получить данные с ajax запроса?

(function($){

    $(document).ready(function() {
        var $block = $('.js-toBtc'),
            price = $block.text(),
            url = 'https://blockchain.info/tobtc?currency=USD&value=' + price;

        $.ajax({
            type: "POST",
            url: url,
            cache       : false,
            dataType    : 'jsonp',
            jsonp       : 'c',
            success: function(html) {
                console.log(html);
            }
        });
    });
})(jQuery);


Собственно это весь запрос, но Я не могу понять почему мне не поступают данные данные (в консоли это видно что ответ на запрос поступил и верный а success не проходит), Я не могу их вывести.

Вопрос почему не срабатывает success и как получить данные которые были загружены.

Как вывести в данные которые загружает ajax
  • Вопрос задан
  • 13259 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Для получения данных с чужого сервера, не прибегая к CORS, был давно придуман JSONP.
Однако, весь смысл использования JSONP в динамическом создании скрипта с адресом, в котором перечислены не только параметры, но и название callback-функции, которое позволит запустить её из контекста eval.

Это означает, что серверный скрипт должен уметь формировать вызов callback-функции, в которую передаются сформированные данные. Как правило, название параметра функции callback. Если не указать имя самой функции, jQuery сформирует случайное название и саму функцию в виде свойства глобального объекта.

Пример 1
$.ajax({
	url: '//api.vk.com/method/database.getCountries',
	data: {
		need_all: 1,
		count: 300
	},
	dataType: 'jsonp'
})
.done(function(data) {
	console.log(data);
});

Иногда название параметра с названием функции может отличаться — это известно заранее.

Пример 2
$.ajax({
	url: 'http://api.flickr.com/services/feeds/photos_public.gne',
	dataType: 'jsonp',
	jsonp: 'jsoncallback',
	data: {
		tags: 'mount rainier',
		tagmode: 'any',
		format: 'json'
	}
}).done(function (data) {
	console.log(data);
});

Если сервер, к которому вы обращаетесь, не в состоянии сформировать ответ с вызовом функции по переданному имени, то вариант с JSONP не прокатит.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
в php выводишь echo "Мой Ajax запрос вернулся " и тебе в success вернется этот текст.
Для Ajax echo это как для php return , суть в php return возвращает а echo выводит а в ajax все что есть в echo возвращает.
Ответ написан
@Billy_Milligan
Не думаю что самый правильный ответ, но всё же.

создаёте cross.php
<?php
$num = file_get_contents('https://blockchain.info/tobtc?'.http_build_query($_GET));
echo $num;


Не забудьте поменять домен на свой!
(function($){

        $(document).ready(function() {
            $.ajax({
                type: "GET",
                url: "http://localhost/cross.php?currency=USD&value=100",
                dataType    : 'text',
                success: function(html) {
                    alert(html);
                }
            });
        });
    })(jQuery);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы