在Angular 5中使用XML数据发出Post请求

时间:2018-03-06 07:38:19

标签: xml angular api service http-post

我是棱角分明并使用角度5的新手。

我正在发送http post请求,我想将xml数据发送到后端,因为我的后端只接受xml格式的数据。

我已经按照一些教程进行了操作但无法使用它。请让我知道我做错了什么,以及如何让它发挥作用。

这就是我提出请求的方式。

signin(){
    const headers = new HttpHeaders({responseType: 'text' , 'Content-Type': 'text/xml' }).set('Accept', 'text/xml');
    let body =  '<request>' 
                '<username>Username</username>' 
                '<password>Password</password>' 
                '</request>';
    const hdr = {headers:headers , body:body};
    console.log("Checking:  " , hdr);
    return this.http.post('https://66.128.132.126:8002/?event=account_login' , hdr);
}

这是我的控制台: Here is My Console for this

这是我的网络: Here is My network

2 个答案:

答案 0 :(得分:2)

responseType和body不应附加标题。 body应该separetly发送并带有header和responseType选项对象应该形成并作为参数发送到post。

signin(){
    const headers = new HttpHeaders();
          headers = headers.append('Content-Type': 'text/xml');
          headers = headers.append('Accept', 'text/xml');
    let body =  '<request>' 
                '<username>Username</username>' 
                '<password>Password</password>' 
                '</request>';

    return this.http.post('https://66.128.132.126:8002/?event=account_login',body , { headers: headers, responseType: 'text' });
}

答案 1 :(得分:1)

默认情况下,Angular CLI发出预检请求以检查CORS:https://developer.mozilla.org/en-US/docs/Glossary/Preflight_request

您的后端似乎没有正确处理此请求。我们需要后端信息来帮助您