我正在尝试使用cordovaHTTP插件并在我的POST
api调用中,虽然我已将Content-Type
标头设置为application/json
但我可以看到内容是以application/x-www-form-urlencoded
格式发送,请求标头中不存在Content-Type标头。
使用样本:
cordovaHTTP.post("url/to/method",
{
"email": "ali@aliha.me"
},
{
"Content-Type": "application/json"
},
function (result) {
alert('success');
},
function (error) {
alert('error');
});
在服务器api中我看到:
RAW BODY
email=ali%40aliha.me
如何可以设置Content-Type
标题?
注意:这种设置标头的方法适用于Authorization
标头等其他标头。
答案 0 :(得分:1)
插件中没有提到它会根据设置的“Content-Type”自动对请求体进行编码。你需要自己做。
此外,似乎没有直接的方法在请求正文中发送数据而未指定key.value对。
这是来自插件文档
Private Sub MonthView1_DateClick(ByVal DateClicked As Date)
On Error Resume Next
Range("A1") = DateClicked
Unload Me
End Sub
你可以用这种方式对json字符串进行编码,但你必须想办法在请求体中发送它
/**
* Write the values in the map as form data to the request body
* <p>
* The pairs specified will be URL-encoded in UTF-8 and sent with the
* 'application/x-www-form-urlencoded' content-type
*
* @param values
* @return this request
* @throws HttpRequestException
*/
public HttpRequest form(final Map<?, ?> values) throws HttpRequestException {
return form(values, CHARSET_UTF8);
}
答案 1 :(得分:1)
此插件尚不支持Content-Type
方法中的post
标题。
我使用亲爱的forked repository brendonparker相反,它有一个postJson
方法用于发送内容类型为application / json的发布请求。