Php 返回POST数据时出错,标题已发送
我找不到有关此特定问题的信息,除了“输出已发送到浏览器”,这可能是真的,因为我在加载浏览器时加载此脚本 然而,情况是: 加载文件时,提交http POST,然后POST应返回创建的ID,该ID随后存储到变量中 角度:Php 返回POST数据时出错,标题已发送,php,angularjs,Php,Angularjs,我找不到有关此特定问题的信息,除了“输出已发送到浏览器”,这可能是真的,因为我在加载浏览器时加载此脚本 然而,情况是: 加载文件时,提交http POST,然后POST应返回创建的ID,该ID随后存储到变量中 角度: var res = $http.post('api/letter.php', $scope.letter); res.success(function(data, status, headers, config) { alert(data);
var res = $http.post('api/letter.php', $scope.letter);
res.success(function(data, status, headers, config) {
alert(data);
$scope.letter.id = data[0].id;
});
res.error(function(data, status, headers, config) {
alert( "failure message: " + JSON.stringify({data: data}));
});
PHP:
在data(Angular)中生成的输出不包含ID,但也包含头未发送错误。因此,整个数据存储在$scope变量中,而不仅仅是ID
如何工作
更新
完整错误/响应:
请注意“47”,它是创建的返回ID
47(!)警告:无法修改标题信息-标题已由第53行的/user/api/letter.php中的(输出开始于/user/api/letter.php:22)发送 更新 echo json_encode($letter->id);返回相同的错误 更新 已找到错误 在我的PHP API控制器中,我的结构如下:
if(isset($_GET['hello'))
else if(isset($_GET['goodbye'))
else if(isset($_GET['welcome'))
但是,通过在第一条if语句之前添加if语句(因此没有if/else语句),代码决定打印这两条语句
感谢您指出错误不在原来的POST声明中,而是另一个 这是一个非常常见的HTTP错误。在返回响应之前,检查是否有任何回显、打印语句并将其删除。Echo或print在理想情况下意味着您正在向浏览器写入内容,而浏览器反过来会理解它已收到对其请求的响应,并阻止所有进一步的响应
而是将$id作为Json编码的对象返回 完整的错误消息是什么?生成错误消息的行是什么?更新了帖子。生成它的行是echo$letter->id。我对此表示怀疑。我认为
echo$letter->id代码>在第22行,错误在第53行生成。啊,是的,我明白了,基本上我有一个PHP文件,其中包含多个$\u GET供Angular使用。我的API控制器。所以第53行也输出了Angular在这篇博文之前提出的一些问题。你能给我们看看letter.php代码吗?谢谢你的回复。然而,由于我使用多个AJAX调用,所以在这个HTTP调用之前已经给出了输出。我不能将此调用放在任何其他调用之前,因为我需要AJAX检索的数据。更新了帖子,返回json编码的对象返回相同的错误。
if(isset($_GET['hello'))
else if(isset($_GET['goodbye'))
else if(isset($_GET['welcome'))