#angular #angular-httpclient
#angular #angular-httpclient
Вопрос:
Я передаю переменную или параметр в URL-адресе во время http-запроса put в angular, и переменная, которую я передаю, находится в форме (x / y). При передаче такого рода переменной URL, на который я ориентируюсь, не попадает из-за формы this variable (x / y). Я думаю, потому что URL меняется, когда я передаю такую переменную. вкратце,
URL, на который я хочу отправить запрос put http://localhost:5000/api/Transmission/{variable}/deleteDashboardAlert
НО URL, на который отправляется этот запрос http://localhost:5000/api/Transmission/x/y/deleteDashboardAlert
Ниже приведена функция, которую я вызываю и передаю аргументы ->
deleteAlert(transmissionId, alertTypeId, description) {
return this.http .put(
`transmission/${transmissionId}/${alertTypeId}/${description}/deleteDashboardAlert`,
{}
);
}
Итак, в основном в вышеупомянутой функции переменная description создает эту проблему
Комментарии:
1. Вы хотите получить доступ к конечной точке API, в которой есть динамическое значение? т.е.
../api/Transmission/123/deleteDashboardAlert
? правильно?2. Пожалуйста, опубликуйте код, с помощью которого вы формируете URL-адрес
3. @KamranKhatti Да, это верно !
4. 👋 привет, не могли бы вы поделиться своим сервисным кодом, как вы передаете данные, и кодом, связанным с отправкой данных?
5. @AG_24 Я отправил решение, проверьте мой ответ
Ответ №1:
вы можете использовать encodeURIComponent
для кодирования variable
значений
deleteAlert(transmissionId, alertTypeId, description) {
const variable = encodeURIComponent(`${transmissionId}/${alertTypeId}/${description}`);
return this.http.put(`transmission/${variable}/deleteDashboardAlert`, {});
}
Комментарии:
1. Большое спасибо за ваше предложение. Метод encodeURIComponent сработал!
2. Я очень рад ей, что 🙂🙂
Ответ №2:
Вы можете добавить любое динамическое значение в вашей конечной точке, как показано ниже.
demo.service.ts
Отредактировано: добавлено encodeURIComponent
для кодирования переданного параметра.
@Injectable({
providedIn: 'root'
})
export class DemoService {
baseUrl = 'http://localhost:5000';
constructor(private http: HttpClient) {}
getDemoData(someValue) {
const endcodedValue = encodeURIComponent(someValue);
const url = `${this.baseUrl}/api/Transmission/${endcodedValue}/deleteDashboardAlert`;
return this.http.get(url);
}
getAnOtherDemoData(someValue1, someValue2 ) {
const endcodedValue = encodeURIComponent(`${someValue1}/${someValue2}`);
const url = `${this.baseUrl}/api/Transmission/${endcodedValue}/deleteDashboardAlert`;
return this.http.get(url);
}
}
Комментарии:
1. Я не верю, что это решит проблему. Параметр или переменная, которые мы передаем и которые содержат косую черту, должны быть отправлены вместе.
2. Я думаю, что encodeURIComponent решит проблему, но я ее не тестирую 😅😅
3. @AG_24 Я обновил свой ответ, надеюсь, это сработает для вас.
4. @KamranKhatti какой смысл копировать мой ответ 😨😨😨