一个php的function ,怎么给ajax 和 php 自己调用?

就是如果请求是ajax 发来的,那么ajax 接收的是 echo 出来的数据;

要是是内部调用的,接收的是 return 的数据, 能不能写个 if 语句,判断是谁发来的,用 echo 或者 return ?

这个if 语句怎么写?

阅读 4.3k
6 个回答

Ajax 请求比传统请求的协议头(header)多了个“x-requested-with XMLHttpRequest
”,可以利用它,request.getHeader("x-requested-with"); 为 null,则为传统同步请求,为 XMLHttpRequest,则为 Ajax 异步请求。

但是以上并不完全准确,可以在请求的时候加上一个希望返回的数据类型格式

当你有这种需求的时候,你就应该考虑你的代码结构是不是出现了问题了。
可以是可以,但是不建议这么做。
可以判断$_GET或者$_POST

echo和return不写在同一个函数里。

tp里有个IS_AJAX,你可以看看它是怎么写的。

如果你有需要,在你的返回结果集里应该加一个字段注明是那种类型,但是在平时开发的时候对这个是没有需求的。不知你为何要区分echo和return?

一般不会用一个函数又echo又return的。
你可以这样做

function a(){
    return $result;
}
function 4AJAX(){
    echo a();
}

要内部调用就用a(),要AJAX的时候就用4AJAX().

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题