我使用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>
我想做的是能够得到回应。
我如何获得此信息?
答案 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 ) );
}
});