我在我的角应用程序中嵌套了http调用。
$scope.saveAsPaused = function() {
var cmsResponse = saveAtCMS();
cmsResponse.then(function(data){
saveAtRe(data).then(function(data){
successSave(data);
}, function(data, isOffDel){
delOnFailRE(data);
});
});
}
var saveAtRe = function(data) {
return $http.post('/pause', data);
}
JAVA中的后端代码
@POST
@Produces("application/json")
@Path("/pause")
public Response createInPauseState(CampaignConfigurationBeans camp) {
return Response.status(502).entity("false").build();
}
在 saveAtRe 函数中,我从后端返回状态代码502,但我的应用程序仍在调用successSave函数。
有人可以解释我做错了吗?
答案 0 :(得分:0)
200到299之间的响应状态代码被视为成功 status并将导致成功回调被称为
502状态代码预计会触发错误回调,您的代码看起来不错。你能否在成功回调中仔细检查返回状态,例如
saveAtRe(data).then(function(data){
console.log(data.status);
}, function(data, isOffDel){
delOnFailRE(data);
});
如果收到的状态是502,那么这不是一般行为,我会检查你的代码中是否应用了额外的Angular的http拦截器。
答案 1 :(得分:0)
这可能对您有所帮助
#include <iostream>
#include <fstream>
#include <sstream>
#include <regex>
#define USE ".*[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}\\.[0-9]{2}.*(?:\\n)*"
int main(int argc, char **argv)
{
std::stringstream stream;
std::filebuf *buffer;
std::fstream fs;
std::string str;
std::regex regex(USE);
if (argc != 2)
{
std::cerr << "Think to the use !" << std::endl;
return (-1);
}
fs.open(argv[1]);
if (fs)
{
stream << (buffer = fs.rdbuf());
str = stream.str();
if (std::regex_match(str, regex))
std::cout << "Yes" << std::endl;
else
std::cout << "No" << std::endl;
fs.close();
}
return (0);
}