Angular $http.jsonp() 方法只工作一次
Angular $http.jsonp() method works only once
响应成功(警报->完成),但第二次和另一次点击将响应 'error'。
我已经尝试使用 'cache: false' 添加一些配置参数,但仍然只能在第一次使用。我应该清除一些 cache/history 还是什么?
$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');
});
};
这是
中的新问题
我已经在 json 数据之前添加到服务器响应 'angular.callbacks._0('...也许这里有误?
这是针对我的问题的解决方案:
现在我正在动态获取可以变化的回调参数(并不总是 angular.callback_0,但可以是:angular.callback_1、angular。 callback_2, 等)来自服务器的 GET 方法,并将其放在 php 中的响应数据 f.e 之前:
<?php header('content-type: application/json;');
$json=json_encode($result);
echo $_GET['callback'].'('.$json.')';
?>
问题是因为 url 正在浏览器中缓存,而另一次它将从 cache.So 中获取我建议您在 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
响应成功(警报->完成),但第二次和另一次点击将响应 'error'。
我已经尝试使用 'cache: false' 添加一些配置参数,但仍然只能在第一次使用。我应该清除一些 cache/history 还是什么?
$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');
});
};
这是
我已经在 json 数据之前添加到服务器响应 'angular.callbacks._0('...也许这里有误?
这是针对我的问题的解决方案: 现在我正在动态获取可以变化的回调参数(并不总是 angular.callback_0,但可以是:angular.callback_1、angular。 callback_2, 等)来自服务器的 GET 方法,并将其放在 php 中的响应数据 f.e 之前:
<?php header('content-type: application/json;');
$json=json_encode($result);
echo $_GET['callback'].'('.$json.')';
?>
问题是因为 url 正在浏览器中缓存,而另一次它将从 cache.So 中获取我建议您在 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