简体   繁体   中英

How get information from laravel controller in typescript

I have a problems sending information from a Laravel controller to TypeScript (TS) I have tried using Ajax but I have not been able to get the information sent from controller

Laravel controller

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

Ajax function in typescript

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

A few small modifications to make this type safe and return a promise as expected:

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

And now you have a promise to work with that you can observe and react to in your code:

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

Or call it from another async function and leverage await for cleaner syntax:

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

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM