簡體   English   中英

帶有“內容類型”的 Angular 2 標頭:“text/xml”,http 帖子不起作用

[英]Angular 2 headers with 'content-type' : 'text/xml', http post not working

抱歉,我真的不知道如何問這個問題,基本上,我想使用自定義標頭調用 http.post,並將屬性“content-type”設置為“text/xml”。 不幸的是,它給了我 500 后的錯誤(內部服務器錯誤)。 但是當我將屬性 'content-type' 設置為 'application/json' 時,一切正常。 這是我的代碼:

getXMLHeaders(): Headers {
    const headers = new Headers({
        'Authorization': `Basic ${localStorage.getItem('APIkey')}`,
        'content-type': 'text'
    });
    return headers;
}



getOptionsXML(): RequestOptions {
    const options = new RequestOptions({headers: this.getXMLHeaders()});
    return options;
}



writeXML(file: string, xml: any, http: Http): boolean {
    try {
        const options = this.getOptionsXML();
        const body = {
            'path': file,
            'body': xml
        };
        console.log(body);
        const readFile = http.post(LOCAL_API_ADDRESS
            + localStorage.getItem('APIport')
            + '/local-api/write-File/', body, options)

            .toPromise();
        readFile.then(res => {
        })
            .catch(err => {
                this.loggerServer.error(http, 'writeXML() promise error: '
                    + err.message);
            });

        return true;
    } catch (err) {
        this.loggerServer.error(http, 'FileManager writeXML: ' + err.message);
        return false;
    }
}

內容類型中,您通知端點您發送的數據類型。 如果您說它是 XML(文本/xml、應用程序/xml)並且服務器不接受此格式,則結果為 500。顯然您的端點僅接受 JSON(應用程序/json)。

簡單地說,您正在嘗試以這種格式發送消息:

<content>
  <param Name="ParamA">TextA</text>
</content>

而服務器只接受這種格式:

{
    "ParamA":"TextA"
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM