当前位置: 首页 > 知识库问答 >
问题:

Angular2调用肥皂Web服务失败,访问被拒绝

谈琦
2023-03-14

我正在尝试使用Angular2和Http POST对SOAP web服务进行一个非常简单的调用。如果我使用POSTMAN发布相同的消息,只需将内容类型设置为text/xml即可。

对于Angular2,我得到了以下错误:-

SEC7120:原点http://localhost:3004在Access Control Allow Origin标头中找不到

SCRIPT7002: XMLHttpRequest:网络错误0x80070005,访问被拒绝

任何帮助都将不胜感激。

这是服务代码

import { Injectable } from 'angular2/core';
import { Http, Request, Response, Headers, RequestMethod, RequestOptions } from 'angular2/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class PaymentsService {

private body: string = `<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"   
xmlns:xsd="http://www.w3.org/2001/XMLSchema"    
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<HelloWorld xmlns="http://bernera.zapto.org/" />
</soap:Body>
</soap:Envelope>`;

private result;

constructor(private http: Http) { }

callSOAP() {

var headers = new Headers();
headers.append('Content-Type', 'text/xml');
headers.append('Access-Control-Request-Method', 'POST');
headers.append('Access-Control-Request-Headers', 'X-Custom-Header');
headers.append('Access-Control-Allow-Origin', 'http://localhost:3004');

this.http.post('http://bernera.zapto.org/astronomy/astronomy.asmx',
  this.body,
  { headers: headers })
  .subscribe(
  data => this.result = data,
  err => this.logError(err),
  () => console.log('Call complete')
  );

alert('result ' + this.result);

}

logError(err) {
console.error('There was an error: ' + err.statusText);
alert('There was an error: ' + err.statusText);

}

}

共有1个答案

景信瑞
2023-03-14

CORS标头需要由您将请求寻址到的服务器添加到服务器的响应中。在客户端上添加标头没有任何效果。

另请参阅访问控制允许原点不允许原点和https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

 类似资料:
  • 我使用此代码登录到外部系统: 我收到一种LoginResponse,但它没有价值。 LoginResponse类型仅包含: 我需要从标头访问UserAuth值,但这不包含在LoginResponse对象中。 SOAP 响应为: 如何访问标题信息,在本例中是UserAuth值? 我是否需要使用更低层次的东西并从soap响应中解析所需的值? 更新: 我认为我需要使用SAAJ使用自定义SOAP请求(类似

  • 问题内容: 我正在使用Java开发基于Soap的Web服务。谁能让我知道如何认证使用Web服务的客户端? 谢谢。 问题答案: 最好但最复杂的可能是带有各种身份验证方法的WS- Security。但是它是最复杂的,并且对企业环境有利。它允许您创建端到端身份验证,并且有很多选项。您可以在简单情况下使用Web服务安全性UsernameToken配置文件 我不知道您使用什么库,但是这是一篇不错的文章,介绍

  • 我正在构建一个RMI应用程序,我有以下服务器类。然而,当我在eclipse中运行它时,我得到了以下异常。出了什么问题,我该如何解决?我花了两天时间在网上阅读类似的问题,但我找不到解决方法。我怀疑这与策略文件有关,但我不知道如何使用。另外,如果问题出在我的运行方式上,你能告诉我在eclipse中如何操作吗。 --

  • 我们已经使用部署扫描程序(“部署”文件夹)将WAR文件部署到Wildfly。web应用程序一直工作到计算机重新启动为止-当服务器再次加载web应用程序时,它会失败。值得一提的是,如果重新启动Wildfly服务,我们就不会有这个问题,它只会在整个操作系统重新启动时发生。如果我重新启动Wildfly,它会再次工作。 如果从部署文件夹中删除失败的文件标志(healthsafety-server.war.

  • 问题内容: 在Python中,当在包含只读文件的文件夹上运行时,将显示以下异常: 在“文件属性”对话框中查看时,我注意到该文件被设置为只读。 所以问题是:解决这个问题的 最简单的 解决方法/解决方案是什么-鉴于我的意图是在Windows上做等效的事情?(无需使用诸如unxutils或cygwin之类的第三方工具-因为此代码的目标是在安装了Python2.6和PyWin32的裸机上运行) 问题答案:

  • 我是码头工人的新概念。我一直在尝试在red hat服务器上创建图像和推入docker hub的示例。我使用下面的命令将我的图像推送到hub(注意:我的图像名中没有任何特殊字符) 当我将图像推送到docker hub repo时,我面临以下错误。 在我使用ths cmd登录docker acc后,我尝试了推送。如果我做错了什么,或者我需要更改配置,请告诉我。我也验证了这个链接(拒绝:请求的资源访问被