我无法找到有关此特定问题的信息,除非"输出已经发送到浏览器"这可能是真的,因为我在加载浏览器时加载了这个脚本。
然而,情况:
正在加载文件,提交Angular http POST,然后帖子应该返回一个创建的ID,然后将其存储到变量中。
角:
ORA-12801: error signaled in parallel query server P069
ORA-01481: invalid number format model".
PHP:
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}));
});
数据(Angular)中生成的输出确实包含ID,但未发送标头错误。因此,整个数据存储在$ scope变量中,而不仅仅是ID。
如何解决?
更新
完成错误/回复: 注意" 47"这是创建的返回ID。
47
(!)警告:无法修改标题信息 - 已在第53行的/user/api/letter.php中发送的标题(在/user/api/letter.php:22处开始输出)< / p>
更新
echo json_encode($ letter-&gt; id);返回相同的错误。
更新
发现错误。
在我的PHP API控制器中,我有一个类似的结构:
if($_SERVER['REQUEST_METHOD'] === 'POST')
{
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
$letter = new Letter();
if($letter->save())
{
echo $letter->id;
}
}
但是,通过在第一个if语句之前添加if语句(所以没有if / else语句),代码决定打印两个语句!
感谢您指出错误不在原始POST语句中,而是另一个错误!
答案 0 :(得分:0)
这是一个非常常见的HTTP错误。在返回响应之前检查任何echo,print语句并将其删除。理想情况下,回声或打印意味着您正在向浏览器写一些东西,而浏览器又知道它已收到对其请求的响应并阻止所有进一步的响应。
而是将$ id作为Json编码对象返回。