提交处理程序发布成功,但完成功能不会触发

时间:2014-06-18 08:39:22

标签: jquery ajax forms

我是一名AJAX新手,我有一个非常简单的Arduino网络服务器,我试图联系并让返回的结果在我的页面上更新div。目前,服务器端表单处理程序只是试图获得一个简单的“Hello Hello"回到客户端。我知道服务器正在发送" Hello world"因为我看到如果我不阻止默认设置,但当然它会显示在新页面上,而不是像我想要的那样显示在div中。我在post和done函数之间放了一些检测代码,以确保帖子看起来成功。 我的服务器端处理程序c ++代码类似于:

    web_server.send_error_code(200);
    web_server.send_content_type("text/plain");
    web_server.end_headers();
    Client& client = web_server.get_client();
    client.println(F("Hello world"));

html测试页面主体(取自jquery submit api示例)如下所示:

    <form id="testForm" action="//192.168.1.177/test">
      <input type="submit" value="Test">
    </form>
    <!-- the results will be rendered inside this div -->
    <div id="result">This is the div</div>
    <script language="javascript">

      // Attach a submit handler to the form
      $( "#searchForm" ).submit(function( event ) {
        // Stop form from submitting normally
        event.preventDefault();

        $( "#result" ).append( " Click"); // just to see we made it here

        // Get some values from elements on the page:
        var $form = $( this ),
        url = "http://192.168.1.177/test";

        var posting = $.post( url );

        $( "#result" ).append( " Clack:"); // just instrumenting the code

        // Put the results in a div
        posting.done(function( data ) {
        //    var content = $( data ).find( "#content" );
        $( "#result" ).append( data );
       document.getElementById('result').innerHTML = "Post resuls!";
        });
      });

      // sanity check that the div can be changed at page load!
      document.getElementById('result').innerHTML = "Ho Ho Ho!";
      $( "#result" ).append( " Green Giant");

    </script> 

请注意,无论数据如何,现在代码只是尝试更新结果div,如果该post.done()函数只是触发!

1 个答案:

答案 0 :(得分:0)

而不是:

var posting = $.post( url );

    $( "#result" ).append( " Clack:"); // just instrumenting the code

    // Put the results in a div
    posting.done(function( data ) {
    //    var content = $( data ).find( "#content" );
    $( "#result" ).append( data );
   document.getElementById('result').innerHTML = "Post resuls!";
    });

写下这个:

$.post( url, function(data){
   //var content = $( data ).find( "#content" );
   $( "#result" ).append( data );
   document.getElementById('result').innerHTML = "Post resuls!";
});

我还认为你需要将一些数据发送到网址以便取回某些内容,如果没有,那么就可以了。