GET 요청을 통해 Angular를 사용하여 어레이 전송JS의 $http 서비스
GET 요청을 전송하려면$http
서비스.파라미터 중 하나는 ID 배열입니다.URL은 mysite.com/items?id []=1&id[]=2&id[]=3&id[]=4와 같습니다.
나는 이 방법을 시도했다.
$http(
method: 'GET',
url: '/items',
params: {
id: ids // ids is [1, 2, 3, 4]
}
)
하지만 내가 알고 있는 URL은 mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D이다.
Angular가 내 값을 JSON 문자열로 변환하고 있기 때문입니다.제가 원하는 행동을 할 수 있는 방법이 있을까요?
[갱신]
jQuery's를 사용하여 Jonathan의 제안으로 문제를 해결했습니다.$.param()
.
$http(
method: 'GET'
url: '/items?' + $.param({id: ids})
)
그냥 해도 돼요
$http(
method: 'GET',
url: '/items',
params: {
"id[]": ids // ids is [1, 2, 3, 4]
}
)
여기서 말한 바와 같이간단해 보입니다.
$http(
method: 'GET',
url: '/items',
params: {
id: JSON.stringify(ids) // ids is [1, 2, 3, 4]
}
)
jQuery도 좋지만 jQuery를 추가하는 것만으로 jQuery 이외의 방법으로 귀중한 바이트를 절약할 수 있습니다.
jQuery 이외의 방법:
$http(
method: 'GET',
url: '/items',
params: {
id: ids.toString() //convert array into comma separated values
}
)
서버에서 어레이로 변환합니다.
예: php
$ids = explode(',',Input::get('ids'));
//now you can loop through the data like you would through a regular array.
foreach($ids as $id)
{
//do something
}
이것은 유효합니다.백엔드에서 디코딩만 하면 됩니다.거의 모든 백엔드 언어에는 URI를 디코딩하는 방법이 있습니다.Angular의 시리얼화 방식이 마음에 들지 않으면 jquery의 $.param()을 사용해 보십시오.
paramSerializer 옵션은 jQuery의 시리얼화 메서드를 복제하도록 설정할 수 있습니다.
$http({
url: myUrl,
method: 'GET',
params: myParams,
paramSerializer: '$httpParamSerializerJQLike'
});
$httpParamSerializer 또는 $httpParamSerializer를 사용할 수 있습니다.JQLike
$http({
method: 'GET',
url: '/items',
data: $httpParamSerializer({'id':[1,2,3,4]}),
})
ID가 너무 많아 구성에 따라 요청 URL이 너무 길어지지 않는 한 다음 솔루션이 작동합니다.
각도 서비스:
$http.get("website.com/api/items?ids=1&ids=2&ids=3");
WebApi 컨트롤러
[HttpGet, Route("api/items")]
public IEnumerable<Item> Get([FromUri] string[] ids)
{
}
언급URL : https://stackoverflow.com/questions/19957858/send-array-via-get-request-with-angularjs-http-service
'programing' 카테고리의 다른 글
효소 설정 파일은 어디에 작성해야 합니까? (0) | 2023.03.07 |
---|---|
WP의 특정 페이지에 대한 "현재 메뉴 항목" 클래스 사용자 지정 설정 (0) | 2023.03.07 |
커스텀 필터에 Java Configuration을 사용하여 Authentication Manager를 삽입하는 방법 (0) | 2023.03.07 |
워드프레스 nginx 리다이렉트루프 (0) | 2023.03.07 |
mongo 콘솔에서 오브젝트 ID를 사용하여 오브젝트를 검색하려면 어떻게 해야 합니까? (0) | 2023.03.07 |