首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Jquery和Slimframework -状态请求

Jquery和Slimframework -状态请求
EN

Stack Overflow用户
提问于 2021-02-21 03:12:37
回答 1查看 28关注 0票数 0

如何使用带有倍数状态代码的Slimframework 3响应Jquery $.post调用?

我的代码是:

Javascript:

代码语言: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:

代码语言:javascript
运行
复制
$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;
}

使用此代码,我总是从post操作中接收状态代码200。我还以为会有201或503的状态码。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-21 10:38:51

请求和响应头是“不可变的”。

而不是这样:

代码语言:javascript
运行
复制
$response->withStatus(503);

return $response;

试试这个:

代码语言:javascript
运行
复制
return $response->withStatus(503);

代码语言:javascript
运行
复制
$response = $response->withStatus(503);

return $response;
代码语言:javascript
运行
复制
// The headers are immutbale
$response = $response->withStatus(201)
    ->withHeader('Content-Type', 'text/plain');

// The body is not immutable
$response->getBody()->write('Done');

return $response;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66298787

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档