以前我在我的函数中使用了以下类型的标头来从应用程序发出请求:
选项http://API_URL 405(方法不允许)
XMLHttpRequest无法加载http://API_URL。对预检请求的响应未通过访问控制检查:请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许原点“http://192.168.1.9:8100”访问。响应的HTTP状态代码为405。
datos = {
Usuario: $scope.usuariotxt,
Password: $scope.passwordtxt
};
'Content-Type': 'application/x-www-form-urlencoded'
function Autenticacion(datos) {
var url = 'http://API_URL';
return $http.post(url, $httpParamSerializer(datos), {
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
}
});
};
现在,内容类型必须与提前提交请求的方式不同
'Content-Type': 'application/json'
功能Autenticacion(datos){
//var url = 'API_URL';
return $http.post(url, $httpParamSerializer(datos), {
headers: {
'Content-Type': 'application/json'
}
});
};
但是使用ARC工具,请求完美无缺
服务器在Azure中,这是信息
Cache-Control: no-cache
Pragma: no-cache
Content-Length: 270
Content-Type: application/json; charset=utf-8
Expires: -1
Server: Microsoft-IIS/8.0
X-Aspnet-Version: 4.0.30319
X-Powered-By: ASP.NET
Set-Cookie: ARRAffinity=0a3517ba6ed8bb14ffe517099672a3eb4ea3c4b710ad8c6e0edaa70c2d244335;Path=/;Domain=apipedroupc20170125045931.azurewebsites.net
Date: Tue, 28 Feb 2017 20:53:09 GMT
答案 0 :(得分:1)
似乎这是一个跨域问题。出于安全原因,浏览器限制从脚本内发起的跨源HTTP请求。没有其他人实施此限制,因此可以使用ARC工具。
您可以在Azure portal中配置CORS。 有关详细信息,请参阅Stack Overflow上的早期帖子:CORS Headers in Azure App Service running Express JS或Azure的文档:https://docs.microsoft.com/en-us/azure/app-service-api/app-service-api-cors-consume-javascript。