Php 如何在服务器端取消ajax查询(来自jquery)?
听起来是个奇怪的问题,但我有这样的问题:Php 如何在服务器端取消ajax查询(来自jquery)?,php,jquery,ajax,Php,Jquery,Ajax,听起来是个奇怪的问题,但我有这样的问题: $.post( "/myajax.php", { "param1": value1, "param2": value2 }, function( data, status ) { if( status == "success" ) { $("#someid").html( data ); } }, "html" ); 虽然mya
$.post( "/myajax.php",
{ "param1": value1, "param2": value2 },
function( data, status ) {
if( status == "success" ) {
$("#someid").html( data );
}
}, "html" );
虽然myajax.php正在做它需要做的任何事情,但它决定不需要对
#someid
进行任何更改。如果它刚刚返回,someid
元素将被置空,但我想不去管它。php查询如何以status!=“成功”
检查返回的数据不是更简单吗
$.post( "/myajax.php", {
"param1": value1,
"param2": value2
}, function( data, status ) {
if( data != "" ) {
$("#someid").html( data );
}
},
"html"
);
ajax调用将任何
200ok
视为成功。因此,您可以从PHP脚本返回其他内容以触发ajax中的错误
是一些其他状态代码,以防您想选择更合适的状态
编辑:我并不一定不同意这种方法,但我仍然更倾向于操作状态消息(http状态),而不是响应主体
我的想法是,在前面提到的后期事务中,您正在更新一个资源。你可以合理地假设你期望两件事中的一件发生(在“成功”条件下):
是和否,我想这两个都是非常基本的想法,返回一个非200 OK似乎更“正确”,因为它改变了状态代码。但是你如何区分它与真正的错误呢?我认为正确完成请求很重要。@Eran-我同意。使用数据参数意味着您正在根据服务器端代码的逻辑进行过滤(正确),而不是HTTP事务(不正确)。此外,如果您返回4xx或5xx错误代码,然后决定在$.ajax()上为失败的ajax请求添加错误处理程序,你最终会打破现有的逻辑。我最初接受欧文的答案,但经过思考,我认为我更喜欢埃兰的想法。它们都有效,FWIW,但我同意这更干净。