gpt4 book ai didi

AngularJS 的 $http.post() 每次发送两个 AJAX 请求,一个没有数据,一个有

转载 作者:行者123 更新时间:2023-12-01 05:01:27 24 4
gpt4 key购买 nike

我对 AngularJS 的 $http 有一个奇怪的问题就我所见,其他人没有的服务。

每次用$http.post()要发送跨域请求,我可以在开发人员工具(网络 Pane )中看到正在发送两个不同的请求:一个,没有任何数据,然后立即发送另一个包含所有数据并返回正确响应的请求从服务器。

下面是一个例子:

$http.post(url+'getSiteList.php', {session_id: $scope.session_id(), withCredentials: true})
.success(function(data, status, headers, config) {
console.log(data);
....

有谁知道这是什么原因造成的?我检查了代码,$http.post 方法只被调用一次。

最佳答案

这完全是关于浏览器如何管理 CORS。当以 angular 发出跨域请求时,浏览器会自动向指定的 URL/URI 发出 HTTP OPTIONS 请求,称为“预飞行”请求或“ promise ”。

只要远程源返回 HTTP 状态代码 200 以及有关它将在响应 header 中接受的内容的相关详细信息,浏览器就会继续执行原始 JavaScript 调用。

关于AngularJS 的 $http.post() 每次发送两个 AJAX 请求,一个没有数据,一个有,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32296612/

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