2015-09-30 52 views
0

我試圖使用cordovaHTTP插件,在我POST API調用,雖然我已經設置Content-Typeapplication/json,但我可以看到,內容是application/x-www-form-urlencoded格式發送和請求標頭中不存在Content-Type標頭。如何設置Content-Type頭在cordovaHTTP插件請求

用法示例:

cordovaHTTP.post("url/to/method", 
{ 
    "email": "[email protected]" 
}, 
{ 
    "Content-Type": "application/json" 
}, 
function (result) { 
    alert('success'); 
}, 
function (error) { 
    alert('error'); 
}); 
服務器API我看到

RAW BODY 
email=ali%40aliha.me 

如何我可以設置Content-Type頭?

注意:這種設置標題的方法,適用於其他標題,如Authorization標題。

回答

1

此插件不支持Content-Type頭文件的方法還有post
我使用forked repository來自親愛的brendonparker,而它有一個postJson方法用於發送包含application/json內容類型的post請求。

+0

我想將apikey,userid,useragent,cookie,Connection,Accept-Encoding,Content-Type和Content-Length發送給api。我應該如何構建我的分叉庫的發佈請求?我不知道哪些發送數據在發送請求的標題部分!希望你能幫助我。謝謝 – user1788736

1

插件中沒有提及它會根據設置的「Content-Type」自動編碼請求主體。你需要自己做。

此外,似乎沒有直接的方式發送請求正文中的數據,而沒有指定key.value對。

從插件文檔

/** 
    * 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); 
    } 

你可以用這種方式編碼您的JSON字符串的,但你要搞清楚的方式在請求主體發送

var jsonData = JSON.stringify({"email": "[email protected]"});