###前提・実現したいこと
ajax
でサーバーサイドにform
データを送信したいです。
###実装の抜粋ソースコード
javascript
1var requestUrl = 'sample.php'; 2var $form = $('#form') 3$.ajax({ 4 url: requestUrl, 5 timeout: 10000, 6 data: $form.serialize(), 7 done: function() {...}, 8 fail: function() {...} 9})
html
1<form action='hoge' id="form"> 2 <input type="text"> 3 ~~ 4</form>
###確認したこと
chromeの開発者ツール内、Network
タブで確認したところ、Request URL
にはajax
のurl
の値とdata
で設定した$(form).serialize()
の値が連結された形で確認できました。
これは私がやろうとしている、『サーバーにform
データを送る』ということが実現できている。
簡単に言うと、この書き方で合っているのでしょうか?
すみませんが、よろしくお願いします。
ローカル側で送信したことは確認できますが、届いたかどうかはサーバ側でしか分からないのでは。もちろん、サーバでレスポンスを返せば間接的に分かると思いますが。
ご回答ありがとうございます。なるほど、やはり開発者ツールなどで分かるという事でないんですね。
繰り返しになりますが、「送れたかどうか」は確認できますし、リクエストを飛ばしているのでなんらかの応答も帰ってきているはずです。たとえばwebAPIへの送信確認ならそれで十分です。
何度もありがとうございます、仰っていること理解できました。ちなみに今回のケースで例えると、本件のようにサーバーにformデータを送りたい場合などのコードの書き方というのは、抜粋ソースコードに書いたような書き方で合ってるものでしょうか?
問題ありません。http://api.jquery.com/jQuery.ajax/ を見ますと、dataは`PlainObject or String or Array`となっており、Stringの場合はクエリストリングに解釈する、となっています。 一方で、http://api.jquery.com/serialize/ を見ると、serialize()はクエリストリングを返すことになっていますから、問題ないことになります。
ご丁寧にご回答いただきありがとうございました。大変助かりましたし勉強になりました。
回答1件
あなたの回答
tips
プレビュー