当向我的服务发送http.post请求时,我最初发送一个Option请求(根据Cors的要求).
但是我意识到我的OPTIONS(飞行前)请求在其响应中没有返回response.data,但是我的POST请求是.这引起了一个问题,因为我需要从POST响应中访问response.data …
Angular是否允许我们以某种方式丢弃http.post调用中的OPTIONS响应?
$http.post("http://api.worksiteclouddev.com/RestfulAPI/api/vw_PeopleListSiteAccess_Update/Get/", JSON.stringify(vm.content))
.then(function (response) {
//success
vm.person = {
"firstname": response.data.Firstname,
"surname": response.data.surname
};
console.log(response.data);
},
function (error) {
//failure
console.log("Something went wrong..." + error.status);
})
.finally(function () {
vm.ptsnumber = "";
});
最佳答案 您无法丢弃预检OPTIONS请求.
此请求的目的是要求服务器发出实际请求的权限.您的预检响应需要确认这些标题才能使实际请求生效.
当您在不同的来源提出请求时,它们是必需的.
某些浏览器将此飞行前请求作为安全措施,以确保服务器信任所完成的请求.这意味着服务器了解在请求上发送的方法,来源和标头是安全的.
在你的情况下,你应该在post api响应中获得响应
$http.post(
"http://api.worksiteclouddev.com/RestfulAPI/api/vw_PeopleListSiteAccess_Update/Get/", JSON.stringify(vm.content)
).then(function (response) {
console.log(response.data);
//You should get your response here
},
function (error) {
console.log("Something went wrong..." + error.status);
});
//有关更多信息,您可以创建外部服务并在该服务中调用api
//在你的控制器中,你可以调用该方法