我已经编写了简单的ajax代码,在成功回调中我已经写了一个警告,但它不起作用。
代码是:
$(".change_forex_transaction_status").click(function(){
$("#insufficient_funds").css("display","none");
var id = $(this).attr('data-transaction_id');
//var ttype = $(this).attr('data-ttype');
if (confirm("Are you sure you want to mark this transaction as complete?")) {
$(this).unbind("click");
$.ajax({
url:"<?php echo Yii::app()->getBaseUrl(true);?>/customer/changeForexTransactionStatus",
type:"POST",
dataType: "json",
//data:{id:id,tidentify:2,ttype:ttype},
data:{id:id,tidentify:2},
success:function(res){
if(res == "unauthorized"){
alert("You Are not authorize to perform this action.");
}else{
if(res == "success"){
location.reload();
} else if(res == "insufficient_fund"){
alert('Insufficient Fees');
$("#insufficient_funds").css("display","block");
} else if(res == 'invalid_fee_account'){
alert('Invalid Merchant Fees Account');
}
}
},
error:function(t) {
console.log(t);
}
});
}
});
即使响应http状态代码为200,它也会进入错误回调,但它应该成功回调并打开一个警告框。
任何人都可以帮忙解决这个问题。
答案 0 :(得分:3)
您期望json不是文本,因此将ajax dataType更改为text
dataType: "text",
答案 1 :(得分:1)
使用JSON.stringify
在服务器上发布数据,当您在json中将数据发布到服务器时,请使用内容类型"application/json"
。现在,如果您希望服务器中的json中的数据,请使用dataType: "json"
。如果来自服务器的数据是html,那么您可以使用dataType: "html"
或文本,然后您可以使用dataType: "text"
。
data: JSON.stringify({ id: id, tidentify: 2 }),
contentType: "application/json",
dataType: "json"