2017-09-06 67 views
0

如何调用WebAPI我是WebApi的新手,并在IIS中部署WebAPI,该服务当我使用IP调用web Api时(http://172.16.209.121/Analytics/api/Purchase/GetProcSmartAnylisys .../Quantity/2ed4b08f-1566-4538-b46a-6fb3a23bf50c/01-01我在使用本地主机时出现错误'Access-Control-Allow-Origin'(http://localhost/Analytics/api/Purchase/GetProcSmartAnylisys .../Quantity/2ed4b08f-1566-4538-b46a-6fb3a23bf50c/01-01- 2017/12-31-2017 /每天)它工作正常......,如何使用端口号来呼叫。如何使用端口号

这是我的WebAPI

[RoutePrefix("api/Purchase")] 

public class PurchaseController : ApiController 

{ 

    [HttpGet] 

    [Route("GetProcSmartAnylisysFinal/{treeType}/{basedOn}/{valueOrQty}/{organization}/{fromDate}/{toDate}/{range}")] 
    public IHttpActionResult GetProcSmartAnylisysFinal(string treeType, string basedOn, string valueOrQty, string organization, string fromDate, string toDate, string range) 

    { 

     ProcSmartAnylisysFinal procSmartAnylisysFinal = new ProcSmartAnylisysFinal(); 

     return Ok(procSmartAnylisysFinal.getProcSmartAnylisysFinal(treeType, basedOn, valueOrQty, organization, fromDate, toDate, range)); 

    } 

} 

这是我Angularjs代码

$scope.submit = function() { 

    $http({ 

     method: "GET", 

     url: 'http://172.16.209.121/mbas50-GCGAnalytics/api/Purchase/GetProcSmartAnylisys…/Quantity/2ed4b08f-1566-4538-b46a-6fb3a23bf50c/01-01-2017/12-31-2017/daily', 

     datatype: 'json' 

    }).then(function (data) { 

     if (data.data.length > 0) { 
      $scope.result = data.data;     
     } else { 
      alert("there is no data found"); 
     } 

    }, function (data) { 

    }); 

} 
+1

这是IP号不是端口。 – Nkosi

+0

带端口的URL格式如下所示:'http://172.16.209.121:8000'如果默认情况下未指定':8000',则其格式为端口号80,因此,如果您想对ajax请求执行ajax请求特定的IP和端口的语法应该是:'http://xx.xx.xx.xx:portNumber' – Kalamarico

+0

我创建了vertuval目录,没有该端口号 –

回答

1

您应该使用CORS。

Install-Package Microsoft.AspNet.WebApi.Cors 

App_Start/WebApiConfig - 注册方法:

config.EnableCors(); 

FooController的:

[EnableCors(origins: "*", headers: "*", methods: "*")] 
+0

非常感谢@anılyıldırım这工作正常我需要...... –