1

送信後のフォーム投稿では新しいページにリダイレクトされるため、ajaxを使用した投稿を使用してフォームデータを送信したい。

<form id="myContactForm">
    <p>
        <label for="byour_name">Your name</label><input type="text" name="byour_name" value="" id="byour_name">
    </p>
    <p>
        <label for="byour_email_address">Your email address</label><input type="text" name="byour_email_address" value="" id="byour_email_address">
    </p>
    <p>
        What's on your mind?<br>
        <textarea name="Message" rows="10" cols="25"></textarea>
    </p>
    <p>
        <input type="submit" value="Send it!" onClick="sendMail()">
    </p>
</form>

function sendMail() {
    $.ajax( {
        url: "/email",
       type: "POST",
       data: $("#myContactForm").serialize(),
    success: function( response) {
                alert(response);
             },
      error: function() {
                alert('failure');
    }
    });
}

リクエストを行うたびにエラー関数が実行されています.Googleアプリエンジンでアプリを書いています。このエラーが発生し続けます:

self._sock.sendall(view[write_offset:write_offset+buffer_size])
error: [Errno 32] Broken pipe

私の投稿リクエストハンドラーは次のとおりです。

def post(self):

    Content = self.request.get("Message")
    byName = self.request.get("byour_name")
    byEmailAddress = self.request.get("byour_email_address")

    gmailUser = 'id@gmail.com'
    gmailPassword = 'password'
    dataSend = byName

    mail.send_mail(sender  = gmailUser,
                   to      = gmailUser,
                   subject ="Email Sent By : "+ byName + "@" + byEmailAddress,
                   body    = Content)
    self.response.out.write(byEmailAddress)

送信ボタンをクリックすると、URl は次のように変わります。

http://localhost:8080/?byour_name=username&byour_email_address=userEmail@gmail.com%40gmail.com&Message=mlm%0D%0A#contact

私はgetリクエストを作成しているので、誰かが私を助けることができます..しかし、投稿リクエストがgetリクエストにどのように変化するか.

4

4 に答える 4

0
<form id="myContactForm" method="post">

form タグで post を使用します。大いに役立つと思います。

于 2013-04-03T14:57:14.020 に答える
0

フォーム タグを削除し、id で目的の値を取得してから、ajax メソッドを使用してください。ajax投稿とフォームリクエストメソッドが競合している可能性があるためです。前に言ったように、フォームにはデフォルトの get メソッドがあると思います。これが、フォームの get メソッドの直後に最初の ajax post make request をクリックするたびに、サーバーによってエラーがスローされる理由である可能性があります。

于 2013-04-02T11:37:57.467 に答える