服务端怎么发起 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)?

阅读 3.3k
2 个回答

刚才,想成 php 去采集别人了,basic认证,官方有例子:

用 PHP 进行 HTTP 认证

<?php
  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 "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
  }
?>

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

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