Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在带有webapi的angular中没有http ok状态错误_Angular_Cors_Webapi - Fatal编程技术网

在带有webapi的angular中没有http ok状态错误

在带有webapi的angular中没有http ok状态错误,angular,cors,webapi,Angular,Cors,Webapi,我试图将表单数据从angular传递到webapi,我的webapi通过使用postman工作得很好,而通过angular传递时,我得到下面的屏幕截图错误供参考。请查看我的代码,并建议我进行任何修改。 我在google中搜索解决方案,并在angular中添加了proxy.conf.json。据我所知,我只是正确地添加了所有细节,如果我在任何地方做错了,请建议我。帮我做这个 My WebPAIConfig.cs代码: public static void Register(Http

我试图将表单数据从angular传递到webapi,我的webapi通过使用postman工作得很好,而通过angular传递时,我得到下面的屏幕截图错误供参考。请查看我的代码,并建议我进行任何修改。 我在google中搜索解决方案,并在angular中添加了proxy.conf.json。据我所知,我只是正确地添加了所有细节,如果我在任何地方做错了,请建议我。帮我做这个

My WebPAIConfig.cs代码:

        public static void Register(HttpConfiguration config)
    {
        //EnableCorsAttribute cors = new EnableCorsAttribute("*", "*", "*");
        //config.EnableCors();
        //var cors = new EnableCorsAttribute("*", "*", "*");
        //config.EnableCors(cors);
        config.EnableCors();
        // Web API configuration and services

        // Web API routes
        config.MapHttpAttributeRoutes();

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );


    }
webConfig.cs中的我的WebAPI Cors代码:

 <httpProtocol>
  <customHeaders>
    <add name="Access-Control-Allow-Origin" value="*" />
    <add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept" />
    <add name="Access-Control-Allow-Methods" value="POST,GET,OPTIONS,PUT,DELETE" />
  </customHeaders>
</httpProtocol>
我的服务电话: 我也尝试了http和httpclient服务

CLODetailsSave(SaveCLODetails: CLOModels): Observable<Response> {
    let requestOptions: RequestOptionsArgs = {
        headers: new Headers({ 'content-type': 'application/json' })
      };

      return this._http.post(this.baseUrl + 'SaveUpdateCLODetails', SaveCLODetails, requestOptions);

    //return this._httpclient.post(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails);

    // return this._httpclient.post<void>(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails, {
    //     headers: new HttpHeaders({

    //         'Content-Type': 'application/json',
    //         'mode': 'no-cors'
    //     })
    //   });
}

您需要在WebApi上启用CORS

config.EnableCors();

有关详细说明,请参见。

尝试将
选项添加到
[AcceptVerbs(“POST”、“GET”)]
。使用
选项
方法发送。这是您的WebAPI问题,而不是角度问题。你在.net上使用什么版本?@StanisalvDontsov我的.net框架是4.6.1,我的api使用postman@MichaelD我已经加上headers@chaitanya:网络标签中的响应如何?@chaitanya您能发布代码吗?您是如何尝试的?我的webapiconfig.cs代码:config.EnableCors();//Web API配置和服务//Web API路由配置.maphttpAttribute路由();config.Routes.MapHttpRoute(名称:“DefaultApi”,routeTemplate:“api/{controller}/{id}”,默认值:new{id=RouteParameter.Optional});我在这个问题中也更新了代码,请尝试发送带有标题的
选项
请求:
来源:您的网站地址
<代码>访问控制请求方法:POST
<代码>访问控制请求标题:内容类型
由邮递员提供。你得到了什么?
CLODetailsSave(SaveCLODetails: CLOModels): Observable<Response> {
    let requestOptions: RequestOptionsArgs = {
        headers: new Headers({ 'content-type': 'application/json' })
      };

      return this._http.post(this.baseUrl + 'SaveUpdateCLODetails', SaveCLODetails, requestOptions);

    //return this._httpclient.post(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails);

    // return this._httpclient.post<void>(this.baseUrl + "SaveUpdateCLODetails", SaveCLODetails, {
    //     headers: new HttpHeaders({

    //         'Content-Type': 'application/json',
    //         'mode': 'no-cors'
    //     })
    //   });
}
this._CLoAPiService.CLODetailsSave(this._CLODetails).subscribe(res => {
  console.log(res);
})