Http在体内发布字符串值

时间:2017-06-21 20:47:54

标签: json ajax angular http post

Http标头的内容类型为application/x-www-form-urlencoded

我必须POST一个字符串值。 environmentId: "predevnet"

在我的上一个项目中,我使用JQuery进行ajax调用:

    $.ajax({
        headers: this.headers,
        type: this.type,
        url: this.url,
        data: {environmentId: "predevnet"},
        dataType: this.dataType,
        contentType: this.contentType,
        async: isAsync,
        success: success,
        cache: this.cache,
        error: error
    });

现在我正试图以角度

进行相同的调用
return this.http
    .post(this.baseUrl + action, JSON.stringify({environmentId: "predevnet"}), options)
    .map(response => response.json() as DcResponse<T>);`

预期结果:表单数据应如下所示:Result Expected

我和JSON.stringify的结果是这样的:Current results

1 个答案:

答案 0 :(得分:0)

如果只想在POST请求的主体中发送一个键值对作为参数,则必须省略关键部分。

因此,如果您希望内容类型为application/x-www-form-urlencoded,那么您的示例必须是这样的:

return this.http
    .post(this.baseUrl + action, '=predevnet', options)
    .map(response => response.json() as DcResponse<T>);`

否则,如果您更喜欢application/json,那么请写下:

return this.http
    .post(this.baseUrl + action, '"predevnet"', options)
    .map(response => response.json() as DcResponse<T>);`