javascript
  • json
  • 2017-03-23 7 views 0 likes 
    0

    JSONコンテンツを含むPOSTを送信することは可能ですか?隠しフォームフィールドから来ますか?Javaスクリプト - 隠しフォームフィールドのJSON

    <form method="POST" name="form0" action="https://my_url/comment/id?Id=5"> 
    <input type="hidden" name="id" id="inputField" value='{"number":5,"content":"aaaa"}'/> 
    </form> 
    

    そして、私はPOSTを送信したいと思います:

    私のフォームはこのようになります{ "数":5、 "内容": "AAAA"} JSONなどではない文字列として。 私が使用している場合:それは文字列として送信される

    document.forms[i].submit(); 
    

    +0

    JSON.parse(whatToSend) – KornholioBeavis

    答えて

    -2

    はい、できます。しかし、サーバー側でこれをデコードする必要があります。これは文字列として転送されるだけです。 jQueryのを使用して

    、これは達成する超簡単になります:

    $.post('https://my_url/comment/id?Id=5', {"number":5,"content":"aaaa"}); 
    

    あなたも返されているものに反応するコールバックを渡すことができます。

    $.post('https://my_url/comment/id?Id=5', {"number":5,"content":"aaaa"}, function (response){ 
        // Do something cool here. 
    }); 
    
    +0

    jQueryのデータが 'アプリケーション/ X-WWW-フォームurlencoded'フォーマットを使用してそのコードします。元のコードより少ないJSONで終了しました。 – Quentin

    +0

    同意しますが、データを渡しました。これは基本的にあなたがやりたいことです。 – mvmoay

    0

    HTMLフォームとしてのみデータを符号化することができますapplication/x-www-form-urlencoded,multipart/form-dataまたはtext/plain(後者は実用的でない)。

    既存のコードでJSONがエンコードされます。

    application/jsonエンコードされたフォームの本文を送信する場合は、XMLHttpRequestまたはfetchを使用する必要があります。例えば

    var xhr = new XMLHttpRequest(); 
    xhr.open("POST", "/path/to/handler"); 
    xhr.setRequestHeader("Content-Type", "application/json"); 
    xhr.send(JSON.stringify({"number":5,"content":"aaaa"})); 
    
    関連する問題