如何从打字稿中的Laravel控制器获取信息

时间:2018-10-16 07:17:20

标签: ajax laravel typescript

我从Laravel控制器向TypeScript(TS)发送信息时遇到问题 我尝试使用Ajax,但无法获取从控制器发送的信息

Laravel控制器

public function getUrl()
{
    $Id       = request('id');
    $urlAdjunto = Adjunto::where('articulo_id', $Id)->plunk('url');
    return response()->json(['url' => $urlAdjunto]);
}

打字稿中的Ajax函数

function getUrl(id) {
    var a=  $.ajax({
        type    : 'GET',
        dataType: 'json',
        url     : '/adjunto',
        data    : {id}
    });
    return a;
}

1 个答案:

答案 0 :(得分:0)

进行一些小的修改以使该类型安全并按预期返回承诺:

async function getUrl(id: number): Promise<any> {
   return await $.ajax({
       type: 'get',
       dataType: 'json',
       url: '/adjunto',
       data: {id}
   })
}

现在您可以保证可以在代码中进行观察并做出反应:

getUrl(15)
   .then((response: any) => {
      //response.data has everything you need
   }).catch((error: any) => {
      // do something with failures
   })

或从另一个async函数调用它,并利用await获得更简洁的语法:

async myFunc(){
  try {
    const { data } = await getUrl(15)

    // do something with your data
  } catch(error) {
    // we all make mistakes
  }
}