Угловой метод $http.jsonp() работает только один раз

Ответ выполнен успешно (предупреждение-> выполнено), но второе и последующие попадания будут отвечать «ошибкой».

Я пытался добавить некоторые параметры конфигурации с помощью «cache: false», но все еще работает только в первый раз. Должен ли я очистить кеш/историю или что-то в этом роде?

    $scope.add2 = function() {

    var config = {
        //url : 'http://www.***.pl/index.php/json/getallusers',
        cache: false,
        //type : 'POST',
        crossdomain: true,
        //callback: 'JSON_CALLBACK',
        //data: d,
        contentType: "application/json",
        dataType: "jsonp",
    };

            var r = Math.floor(Math.random() * 1000) + 4;
            var d = {user_type_id:0, user_venue_id:0, fname:r}; 
            var e = objToString(d);


//$http.jsonp('http://www.***.pl/index.php/json/adduserget?callback=JSON_CALLBACK&'+ e, config)

$http.jsonp('http://www.***.pl/index.php/json/adduserget?callback=JSON_CALLBACK&'+ e)
                .success(function(res){
                    console.log('res:' + res.user); 
                    alert('done');
                })
                .error(function(){  
                    console.log('error');       
                    alert('error');
                }); 
        };

Это новый вопрос в jsonp и действие публикации в ionic framework ( угловой.js)

Я добавил к ответу сервера 'angular.callbacks._0(' перед данными json... может здесь ошибка?

Это решение моей проблемы: теперь я динамически получаю параметр обратного вызова, который может варьироваться (не всегда angular.callback_0, но может быть: angular.callback_1, angular.callback_2 и т. д.) из метода GET на сервере и поставить это перед данными ответа f.e в php:

<?php header('content-type: application/json;');
$json=json_encode($result);
echo $_GET['callback'].'('.$json.')';
?>

person studentttt    schedule 19.07.2015    source источник
comment
откуда вы его вызываете, можете ли вы предоставить код?   -  person Avraam Mavridis    schedule 19.07.2015
comment
Я использую ionic frm, вот синппеты: codepen.io/studentttt/pen/BNPPoP   -  person studentttt    schedule 19.07.2015


Ответы (1)


Проблема в том, что URL-адрес кешируется в браузере, а в другой раз он будет извлекаться из кеша. Поэтому я предлагаю вам добавить новый фиктивный параметр внутри вас URL, который будет иметь текущий Date.now(), чтобы каждый раз, когда вы вызываете службу, которая будет делать URL уникальная лань для Date.now() компонента.

Код

$http.jsonp('http://www.where2play.pl/index.php/json/adduserget?callback=JSON_CALLBACK&'+
 e + '&dummy='+ Date.now()) //<--this will add new value everytime to make url unique
person Pankaj Parkar    schedule 19.07.2015
comment
Я пробовал это и происходит то же самое, самое странное: каждый запрос заканчивается с 200 и тем же ответом, но $http переходит в случай ошибки - person studentttt; 19.07.2015
comment
точно, так почему он идет? - person studentttt; 20.07.2015