Как получить информацию от контроллера laravel в машинописи - PullRequest
0 голосов
/ 16 октября 2018

У меня проблемы с отправкой информации с контроллера 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 голосов
/ 16 октября 2018

Несколько небольших модификаций, чтобы сделать этот тип безопасным и вернуть обещание, как и ожидалось:

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
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...