JQuery Ajax提交表单 - 获得响应

时间:2014-07-11 09:16:27

标签: jquery ajax

我使用Jquery Ajax发布表单...这是代码:

$( document ).ready(function() {


            //callback handler for form submit
$("#myform").submit(function(e)
{
    var postData = $(this).serializeArray();
    var formURL = $(this).attr("action");

    $.ajax(
    {
        url : formURL,
        type: "POST",
        crossDomain: true,
        data : postData,
        success:function(data, textStatus, jqXHR) 
        {
            //data: return data from server
            alert('it worked');
            alert(this.data + "," + this.url);
        },
        error: function(jqXHR, textStatus, errorThrown) 
        {
            //if fails   
            alert('it didnt work');   
        }
    });
    e.preventDefault(); //STOP default action
    e.unbind();
});

$("#myform").submit(); //Submit  the FORM

});

这很好用,并且已经添加了这个:

alert(this.data +“,”+ this.url);

它正在给我发布的数据和网址。

我的问题是它提交的api会在提交表单后返回这样的数据:

<response>
<result>12</result>
<message>Successful.</message>
</response>

我想做的是能够得到回应。

我如何获得此信息?

2 个答案:

答案 0 :(得分:3)

您需要将this.data替换为data,如果您想访问回复的特定字段,请添加JSON dataType

$.ajax(
    {
        ...
        dataType : "json",
        success: function(data, textStatus, jqXHR) 
        {
            alert("Result: "+data.result+", Message: "+data.message);
        },
        ...
    });

希望它有所帮助!

答案 1 :(得分:1)

你可以参考下面的例子。

$.ajax({
  url: "http://fiddle.jshell.net/favicon.png",
  beforeSend: function( xhr ) {
    xhr.overrideMimeType( "text/plain; charset=x-user-defined" );
  }
})
  .done(function( data ) {
    if ( console && console.log ) {
      console.log( "Sample of data:", data.slice( 0, 100 ) );
    }
  });