响应成功(警告 - >完成),但第二次和另一次点击将响应'错误'。
我尝试使用'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 and post action in ionic framework (angular.js)
中的新问题我已经添加到服务器响应'angular.callbacks._0('在json数据之前......'可能是这里的错误?
这是我的问题的解决方案: 现在我正在动态地获取回调参数,该参数可以通过服务器上的GET方法改变(不总是angular.callback_0,但可以是:angular.callback_1,angular.callback_2等)并将其放在php中的响应数据fe之前:
<?php header('content-type: application/json;');
$json=json_encode($result);
echo $_GET['callback'].'('.$json.')';
?>
答案 0 :(得分:2)
问题是因为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