angular의post 요청 처리 예시 상세 설명
프로젝트 angular에서 jQuery 요청을 사용하여angular 자체 요청으로 바꾸려고 했는데 백그라운드에서 ⑹를 얻을 수 없기 때문에 조회 자료를 분석하고 정리합니다.
단계는 다음과 같습니다.
우선, angular와 jQuery의 요청은 다르다.다음과 같습니다.
application/x-www-form-urlencoded; charset=UTF-8
이 형식의 데이터는'&'로 구분된 키-값으로 인코딩되었고'='로 구분된 키와 값으로 인코딩되었습니다.알파벳이나 숫자가 아닌 문자는 백분율로 인코딩됩니다. 이것이 바로 이런 유형이 바이너리 데이터를 지원하지 않는 이유입니다. (multipart/form-data로 대체해야 합니다.)데이터 매개변수는 다음과 같이 처리됩니다.
// json
{ a : 3, b : 2 }
// json
"a=3&b=2"
application/json
데이터 매개 변수:
// json
{a: 3,c: 2}
종합적으로 보면angular 제출 백그라운드는 json이지 폼 데이터가 아니다.우리는 json 대상을 매개 변수 연결로 전환해야 한다. 백그라운드를 제출할 때 폼 데이터가 된다.
/**
* application/json application/x-www-form-urlencoded
* @param data
*/
handlerPostParams(data) {
const params = [];
for (const key in data) {
if (data[key] && !isNull(data[key])) {
if (data[key] instanceof Array) {
for (let i = 0; i < data[key].length; i++) {
if (data[key][i] && !isNull(data[key][i])) {
const value = data[key][i];
const name = key + '[' + i + ']';
const innerObj = {};
innerObj[name] = value;
params.push(this.handlerPostParams(innerObj));
}
}
} else if (data[key] instanceof Object) {
for (const k in data[key]) {
if (data[key][k] && !isNull(data[key][k])) {
const value = data[key][k];
const name = key + '[' + k + ']';
const innerObj = {};
innerObj[name] = value;
params.push(this.handlerPostParams(innerObj));
}
}
} else {
const param = encodeURIComponent(key) + '=' + encodeURIComponent(data[key]);
params.push(param);
}
}
}
return params.join('&');
}
총결산이것은angular에서post 요청 처리에 관한 글입니다. 더 많은 angularpost 요청 처리 내용은 저희 이전의 글을 검색하거나 아래의 관련 글을 계속 훑어보십시오. 앞으로 많은 응원 부탁드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Angular에서 타사 스크립트 및 CSS 작업Angular 방식으로 회로도가 있는 외부 라이브러리를 추가하거나 모듈을 가져옵니다. Angular.json은 Angular 프로젝트의 모든 설정 파일이며 표준 JavaScript 및 CSS 파일과 함께 타사 라이브...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.