2016-06-24 58 views
0

我想將json數據發佈到我無法控制的URL。 API文檔說只有json數據被接受。我在考慮是否可以使用HTML表單來簡化操作。我可以只發布json字符串(不帶「name =」)嗎?

這裏有很多關於如何「使用表單發佈json數據」的帖子,它們都不適用於我的情況。問題是,據我所知,如果您使用表單發佈數據,則發佈的內容總是「name = value」,但API只需要「value」。也就是說,即使我可以將JSON.stringifyinput的值賦給JSON字符串,但我仍然需要將其與「API」不一樣的「名稱」發佈。所以這是我的問題,我真的可以只使用表單發佈值?

更新:在API document

它的API中說什麼是非常模糊的我。主要的信息有: 1)調用接口時,使用HTTPS協議和JSON數據包,數據包不需要加密。

2)HTTPS請求方法:POST https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN

對於ACCESS_TOKEN我需要使用一些密碼得到它和它在2小時內到期。

3)如果消息發送成功,則返回:

{ 
    "errcode": 0, 
    "errmsg": "ok", 
    "invaliduser": "UserID1", 
    "invalidparty":"PartyID1", 
    "invalidtag":"TagID1" 
} 
+0

Json是密鑰對,你正在尋找的東西顯然是純文本 –

+0

你是說我需要爲表單的enctype使用「text/plain」嗎? – shenkwen

+0

你可以發佈一個json字符串作爲字符串。帖子並不要求帖子正文中的key = value對。但是如果你在服務器上使用類似PHP的東西,那麼你必須使用key = value,因爲要使用該值填充$ _POST這個關鍵字。你總是可以直接從輸入中讀取原始值,例如'$ data = file_get_contents('php:// input');'。一個html表單本身不會提交任何沒有名字的值,所以你需要javascript來構建你的無名稱文章。 –

回答

1

號的工作,讓JSON formatted data to be directly generated from a form已經停產。

爲了讓你將需要使用任一方請求:

任何這些可以使用一個HTML形式使用它,以產生第之前收集數據請求第三方API。

+0

我實際上嘗試使用$ .ajax,但它會返回一個跨域錯誤,就像您所說的那樣。儘管我使用$ .ajax發送數據,但我仍然需要一點澄清,儘管由於跨域問題我看不到URL返回的內容,但URL確實獲取了我的發佈數據,不是嗎? – shenkwen

+1

您可以使用瀏覽器的開發人員工具中的「網絡」選項卡查看完整請求。由於您將發送格式爲JSON的數據,因此您將內容類型設置爲無法由純HTML表單生成的內容類型。這會觸發預檢OPTIONS請求來請求權限。由於服務沒有使用CORS授予權限,因此它將被拒絕,所以POST請求永遠不會發送。 – Quentin

相關問題