搜尋

首頁  >  問答  >  主體

服务端怎么发起 http 基本认证??

在 js ajax 中有下面这一种情况:
var xhr = new XMLHttpRequest();    // 下面的第四个,第五个参数怎么使用??
   xhr.open('get' , 'authorization.php' , true , username , password);
   xhr.send();
目前为止都没有使用过 ajax open 方法的第四个,第五个参数,今天写 ajax 操作类的时候感觉第四个,第五个参数始终是个疙瘩,就想彻底搞懂他。
网络上说在 需要 http 基本认证的 页面,才需要提供 第四个,第五个参数。
可是我就是不懂 php页面怎么弹出认证框??
我试过:
header('Authorization: username:password');
可这个应该是在 ajax 请求中头设置的,总之,php 这一块怎么弄?? 毫无头绪啊
能否将这个认证的 js 代码, php 代码贴出来 学习(暂时不涉及 oAuth 认证,先学最原始的哈,然后再上 oAuth)?                

高洛峰高洛峰2957 天前648

全部回覆(2)我來回復

  • 代言

    代言2016-11-09 13:55:29

      if (!isset($_SERVER['PHP_AUTH_USER'])) {
       header('WWW-Authenticate: Basic realm="My Realm"');
       header('HTTP/1.0 401 Unauthorized');
       echo 'Text to send if user hits Cancel button';
       exit;
     } else {
       echo "

    Hello {$_SERVER['PHP_AUTH_USER']}.

    ";
       echo "

    You entered {$_SERVER['PHP_AUTH_PW']} as your password.

    ";
     }
    ?>


    回覆
    0
  • 三叔

    三叔2016-11-09 13:55:10

    正常网络请求状态是200,你要浏览器弹出基本认证窗口,返回状态401即可

    回覆
    0
  • 取消回覆