如何解决Jquery 和 Slimframework - 状态请求
如何使用带有多个状态代码的 Slimframework 3 响应 Jquery $.post 调用?
我的代码是:
Javascript:
$.post('/insert/table/' + $pedido,table_data)
.done(function(data,statusText,xhr) {
alert(xhr.status);
if (xhr.status == 201) {
alert('Done');
} else {
alert('Error');
}
})
.fail(function(xhr,textStatus,errorThrown) {
alert(xhr.responseText);
});
PHP:
$this->post('/insert/table/{pedido}',\App\Controller\Master\MasterController:SaveTable');
public function SaveTable($request,$response,$args) {
$params = (object) $request->getParams();
$logger = $this->container->get('logger');
$pedido = $args['pedido'];
if($pedido < 1){
$logger->error('Arg:Cod Pedido error.');
$response->withStatus(503);
return $response;
}
$conn = $this->container->get('DB_Producao');
if($conn) {
$tsql= "INSERT INTO .......";
if(!sqlsrv_query($conn,$tsql)) {
$logger->error('error');
$response->withStatus(503);
return $response;
die();
}
}
$response->withStatus(201)
->withHeader('Content-Type','text/plain')
->write('Done');;
return $response;
}
使用此代码,我总是从发布操作中收到状态代码 200。我期待 201 或 503 状态代码。
解决方法
请求和响应头是“不可变的”。
取而代之的是:
$response->withStatus(503);
return $response;
试试这个:
return $response->withStatus(503);
或
$response = $response->withStatus(503);
return $response;
// The headers are immutbale
$response = $response->withStatus(201)
->withHeader('Content-Type','text/plain');
// The body is not immutable
$response->getBody()->write('Done');
return $response;
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。