Использовать Ax ios. Получить с параметрами и заголовками при передаче в WebApi Controller - Ошибка при передаче данных - PullRequest
0 голосов
/ 23 марта 2020

Привет, я работаю над React с webapi. У меня проблема с передачей данных в контроллер webapi с заголовками и параметрами. См. Мой код, приведенный ниже.

React Js

 import React from 'react';
import axios from 'axios';

class Profile extends React.Component {

constructor(props) {
    super(props);
    this.state = {

    }
}

 componentDidMount() {
    var access_token = "12121212121";
    var username = "Test";
    var guid= "W3432";

    let config = {
        headers: { Authorization: access_token,Username:username } ,
        params: {guid}
    }
       axios.get('http://localhost:XXXX/Api/Authenticate/Getprofiledetails', config).then(response => {
        console.log(response.data)  
    })
        .catch(function (error) {
            console.log(error);
        })
}


}

Контроллер (Web Api2)

public class AuthenticateController : ApiController
{
[Route("Api/Authenticate/Getprofiledetails/{id}")]
    [HttpGet]
    public IHttpActionResult Getprofiledetails(Guid id)
    {
        try
        {

            return Ok("Done");
        }
        catch (Exception ex)
        {

            throw ex;
        }
    }}

Webapi.config

config.Routes.MapHttpRoute(
           name: "DefaultApi1",
           routeTemplate: "api/{controller}/{action}/{id}",
           defaults: new { id = RouteParameter.Optional }
       );

        config.Routes.MapHttpRoute(
            name: "DefaultApi",
            routeTemplate: "api/{controller}/{id}",
            defaults: new { id = RouteParameter.Optional }
        );

Ошибка

Сообщение: " Не найден ресурс HTTP, соответствующий URI запроса 'http://localhost: XXXX / Api / Аутентифицировать / Getprofiledetails справ = W3432 «. MessageDetail: « На контроллере« Аутентификация »не найдено ни одного действия, соответствующего имени« Getprofiledetails »

Ответы [ 2 ]

0 голосов
/ 24 марта 2020

Изменить код:

 componentDidMount() {


    var access_token = localStorage.getItem('access_token');
    var username = localStorage.getItem('user');
    var guid= localStorage.getItem('Guiid');


       axios.get('http://localhost:XXXX/Api/Authenticate/Getprofiledetails'+'/'+ guid,  { headers: { Authorization: access_token,Username:username } }).then(response => {
        console.log(response.data)  
    })
        .catch(function (error) {
            console.log(error);
        })


}
0 голосов
/ 23 марта 2020

Похоже, у вас нет соответствующего контроллера в вашем веб-API для получения такого рода запроса. Вы должны поставить идентификатор как часть URL: 'http://localhost: XXXX / Api / Authenticate / Getprofiledetails / W3432 '

...