【问题标题】:Call WCF Service from Angular 2从 Angular 2 调用 WCF 服务
【发布时间】:2017-02-03 17:18:02
【问题描述】:

我目前正在从 Angular 2 服务(名为 app.service.ts 的文件)调用 Web Api 方法 它返回数据,我可以将该数据绑定到我的页面中。

现在我想从 Angular 2 服务(名为 app.service.ts 的文件)调用 WCF 服务。 我已经尝试了与 Web Api 相同的方法。 但它会导致 Allow-Access-Origin 错误。 我也在传递标题以解决它。 但问题仍然存在。

  import {Http,Response,Headers,RequestOptions} from "@angular/http"
  import { Observable } from 'rxjs/Rx';

  @Injectable()
  export class HeroService {
  Hero = [];

   baseUrl = 'http://192.168.0.4/ITM1.3/Service1.svc/Delete502/';

   constructor(private _http: Http) {
        this.loadHeroes();
   }

   loadHeroes() {

   let headers = new Headers({ 'Content-Type': 'application/json' },{'Access-Control-Allow-Origin' : '*'},{'Access-Control-Allow-Methods' : 'POST, GET, OPTIONS, PUT, DELETE'});
   let options = new RequestOptions({ headers: headers });
   return this._http.get(this.baseUrl+"Login/harshad.bhola@etatvasoft.com1/1",options)
                    .map((response: Response) => {
                        console.log(reponse);
                        let heroData = response.json();
                        return heroData;
                    })
                    .do(data => console.log(data))
                    .catch(this.handleError);
   }
}

我还准备了一个 http-client 类(组件)来传递请求的标头,但仍然出现相同的错误。

那么谁能准确解释我如何调用 WCF 服务并从中获取数据?

【问题讨论】:

标签: c# wcf angular


【解决方案1】:

Access-Control-Allow-Origin 是响应头,而不是请求头。您需要将 WCF 配置为使用为您尝试访问的域设置的 Access-Control-Allow-Origin 标头进行响应。请注意Access-Control-Allow-Origin 不是服务器端安全机制。因此,如果需要,您仍然需要添加适当的身份验证和授权。

可以在here 找到有关如何执行此操作的有用答案。可以在here找到更详尽的标题解释。

【讨论】:

    猜你喜欢
    • 2017-02-08
    • 2011-01-31
    • 1970-01-01
    • 2011-05-29
    • 2016-04-12
    • 2018-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-10-20
    相关资源
    最近更新 更多