PHP Header()在响应AngularJS请求时不管if语句如何发送
PHP Header() sent regardless of if statement in response to AngularJS Request
这让我很抓狂。
我在AngularJS中有一个服务,它会在我发出的任何请求旁边发送一个授权头。
在PHP端,我可以成功读取该头文件,并对其进行测试。如果身份验证令牌无效,则发送401报头。
$auth_header = $_SERVER['HTTP_AUTHORIZATION'];
$test = !valid($auth_header);
//var_dump($test);
if ($test) {
header("HTTP/1.1 401 Unauthorized");
exit;
}
我遇到的问题是AngularJS一直告诉我它正在获得401,无论$test是否为真或假。我通过vardump进行了测试。
如果我删除头,它就像我期望的那样工作:如果$test因为退出而为假,则不返回任何东西,如果$test为真,则返回我想要的数据。
然而,当我放入报头时,响应总是返回为401。
感觉标题忽略了if语句,我完全困惑了。我搜索了又搜索,找不到任何关于这个问题的信息,所以我觉得这是一个超级简单的事情,我做错了。帮助吗?
编辑当我取消var_dump($test)的注释时,我得到以下内容:
授权头错误:
bool(true)
Warning: Cannot modify header information -头已经发送(输出开始于/home/test/public_html/测试/api/sales.php: 19)/home/test/public_html/test/api/sales.php on line23
良好的授权头:
bool(false) ["JSON Data"]
然而,当我注释掉var_dump($test)时,我总是从AngularJS得到以下响应:
XMLHttpRequest无法加载http://fakeurl.com/test/api/sales.php。无效HTTP状态码401
我找到了问题所在。当发出OPTIONS请求时,没有应用authorization头,导致它以401的形式返回。
- 可以't让我的if语句处理js中的html表单输入
- 如果 a 为 false,则 if(a) === if(false)
- 如何在ReactJS JSX中执行嵌套的if-else语句
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 正在尝试使用if和else添加类,但无法正常工作
- 在PHP中使用javascript更改页面标题'if'
- gulp-if-javascript文件,但不在gulp-useref的特定目录中
- 如何在 API 调用后和 if 语句中启用提交按钮
- 带有多个elseif的Javascript if语句
- 什么是&&在没有if的行中的变量之间
- 另一个if(!$scope.$$phase)$scope$apply()szenario-需要帮助才能通关
- Sharepoint JScript if语句未执行
- Javascript:If-then语句在函数中不起作用
- for循环中的javascript if语句找不到==
- jquery if语句返回return wong语句
- 对于loop.if-仅在经过所有间隔后返回true
- Javascript Return and if/else
- Javascript nested if
- 不管“if([])”是什么,它似乎不是假的
- PHP Header()在响应AngularJS请求时不管if语句如何发送