使用'Content-Type'错误发布请求angular 1.x:'application / json'

时间:2017-02-28 21:54:58

标签: angularjs json azure ionic-framework

以前我在我的函数中使用了以下类型的标头来从应用程序发出请求:

错误

  

选项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工具,请求完美无缺

Image Link

服务器在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

1 个答案:

答案 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