ajax 接口的 php 文件中进行跳转

假设我在一个静态页面 mine.html 中用 ajax 请求接口URL ajax_mine.php
ajax_mine.php 中包含一个函数,getParamsFromService(),这个函数里的代码是这样的:

    $url_referer = 'http://'.$domain.$_SERVER['REQUEST_URI'];
    header("Location: http://{$domain}/index.php?g=Wap&m=Api&a=checkLogin&scope={$scope}&token={$token}&from=".urlencode($url_referer));
    exit;

我们向 ajax_mine.php发送ajax请求时,这个接口会发生一次跳转,这个跳转的目标URL在收到请求后,处理完逻辑,又会跳回到请求的 url_referer 参数中的url。

也就是说,我们请求的接口地址 ajax_mine.php 内部是发生了一次跳转和返回的跳转的动作,这个时候,我发现这个接口原本应该返回数据却变成空的。是不是接口的PHP文件内部发生跳转都是无效的呢?

/------- 补充 2014-11-07 -------/
可能大家误会我提问的意思了。我知道应该返回状态,在客户端跳转,我其实想知道的是服务端跳转后,再返回值给客户端为什么不行?原理是什么?

阅读 8.5k
3 个回答

看下ajax 的状态应该是显示 302了....之前遇到类似的问题

你服务端的代码就不要做成 跳转到另外一个页面处理数据然后返回数据, 而是做成服务接口,直接php调用然后返回数据

服务端只返回一个状态码(比如:成功,失败等等),客户端判断跳转。

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