$ _SERVER ['PHP_AUTH_USER']为空

时间:2011-02-18 02:23:39

标签: php authentication titanium xmlhttprequest http-basic-authentication

编辑:问题不在于PHP,我使用的是错误的cURL。更新了问题以显示我在XHR中遇到的问题。

摘要:无法使用XHR获取PHP的用户名:

var xhr = Ti.Network.createHTTPClient();
xhr.timeout = 1000000;
xhr.open("GET","http://myapi.com/test", false, 'user', 'pass');
xhr.send();

在我的PHP脚本中,我正在尝试使用以下命令访问用户名:

<?php print $_SERVER['PHP_AUTH_USER']; ?>

无论我尝试什么,它总是空着的。

我需要配置一些PHP设置吗?

更多信息:PHP版本5.2.13,Apache,MAMP

1 个答案:

答案 0 :(得分:2)

<script src="http://www.webtoolkit.info/djs/webtoolkit.base64.js"></script>
<script>
var xhr = Ti.Network.createHTTPClient();
xhr.timeout = 1000000;
xhr.onreadystatechange = function() {
    if (xhr.readyState != 4) return;
    alert('Server said: '+xhr.responseText);
};
xhr.open('GET', 'http://myapi.com/test', false);
xhr.setRequestHeader('Authorization', 'Basic ' + Base64.encode('user:pass') );
xhr.send('');
</script>

(为了礼貌,你应该下载webtoolkit.base64.js并从你自己的服务器上提供它。)

请注意,您无法使用XHR执行跨域请求;您的JavaScript和PHP必须在同一个域中提供。