[json] application / json과 application / x-www-form-urlencoded의 차이점

차이점은 무엇입니까

request.ContentType = “application / json; charset = utf-8”;

webRequest.ContentType = “application / x-www-form-urlencoded”;



답변

첫 번째 경우는 웹 서버에 다음과 같이 JSON 데이터를 게시하고 있다는 것입니다.

{ Name : 'John Smith', Age: 23}

두 번째 옵션은 웹 서버에 다음과 같이 URL의 매개 변수를 인코딩 할 것임을 알리는 것입니다.

Name=John+Smith&Age=23


답변

webRequest.ContentType = “application / x-www-form-urlencoded”;

  1. 어디 않는 응용 프로그램 / x-www-form-urlencoded를 이름의에서 온?

    HTTP GET 요청 을 보내면 다음과 같이 쿼리 매개 변수를 사용할 수 있습니다.

    http://example.com/path/to/page? name = ferret & color = purple

    필드의 내용은 쿼리 문자열로 인코딩됩니다. application/x-www-form-
    urlencoded
    의 이름은 이전 URL 쿼리 매개 변수에서 온 그러나 쿼리 매개 변수는 곳 요청의 몸 대신 URL입니다.

    전체 양식 데이터는 긴 쿼리 문자열로 전송됩니다. 쿼리 문자열에는 & 문자로 구분 된 이름-값 쌍이 포함 됩니다.

    예 : field1 = value1 & field2 = value2

  2. 단순 이라고하는 간단한 요청 일 수 있습니다 . 프리 플라이트 검사를 트리거하지 마십시오.

    간단한 요청에는 몇 가지 속성이 있어야합니다. 자세한 내용 은 여기 를 참조하십시오. 그중 하나는 간단한 요청에 대해 Content-Type 헤더에 허용되는 값이 세 개뿐이라는 것입니다

    • application / x-www-form-urlencoded
    • 멀티 파트 / 폼 데이터
    • 텍스트 / 일반

3. 대부분 평평한 매개 변수 트리의 경우 application / x-www-form-urlencoded가 시도되고 테스트됩니다.

request.ContentType = “application / json; charset = utf-8”;

  1. 데이터는 json 형식입니다.

가장 인기있는 npm HTTP 라이브러리 중 하나 인 axiossuperagent 는 기본적으로 JSON 본문과 함께 작동합니다.

{
  "id": 1,
  "name": "Foo",
  "price": 123,
  "tags": [
    "Bar",
    "Eek"
  ],
  "stock": {
    "warehouse": 300,
    "retail": 20
  }
}
  1. “application / json” Content-Type은 프리 플라이트 요청 중 하나입니다 .

이제 요청이 단순 요청이 아닌 경우 브라우저 는 원래 요청을 보내는 것이 안전한지 여부를 확인하기 위해 OPTIONS 메소드로 원래 요청 전에 HTTP 요청을 자동으로 보냅니다 . 괜찮 으면 실제 요청을 보내십시오. 자세한 내용 은 여기 를 참조하십시오.

  1. application / json 은 초보자에게 친숙합니다. URL 인코딩 배열은 악몽이 될 수 있습니다!

답변