gpt4 book ai didi

javascript - Angular $http.jsonp() 方法只工作一次

转载 作者:行者123 更新时间:2023-11-30 16:44:07 24 4
gpt4 key购买 nike

响应成功(警报->完成),但第二次和另一次点击将响应“错误”。

我尝试添加一些带有“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) 中的新问题

我在 json 数据之前添加到服务器响应 'angular.callbacks._0('...也许这是错误的?

这是我的问题的解决方案:现在我动态地从服务器上的 GET 方法获取回调参数,该回调参数可能会有所不同(并不总是 angular.callback_0,但可以是:angular.callback_1、angular.callback_2 等),并将其放在 php 中的响应数据 f.e 之前:

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

最佳答案

问题是因为 url 被缓存在浏览器中,而另一次它会从缓存中获取。所以我建议您在 URL 中添加新的虚拟参数,该参数将具有当前 Date.now() 这样每次您调用服务时,URL 都会成为 Date.now() 组件的唯一 doe。

代码

$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

关于javascript - Angular $http.jsonp() 方法只工作一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31504637/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com