Chrome 개발자 도구를 사용하여 HTTP 요청


206

POSTER와 같은 플러그인을 사용하지 않고 Chrome 개발자 도구를 사용하여 HTTP 요청을하는 방법이 있습니까?


1
도메인 간 요청 또는 개발자 도구를 연 동일한 도메인에서 요청을 하시겠습니까?
루카스

6
이 기능을 원하는 모든 사람들에게 –이 Chromium 문제에 별표를 표시하십시오 : code.google.com/p/chromium/issues/…
Ivan Zuzak

1
모두 유용한 답변이었으며, 매우 유용한 Advanced Rest Client 도구를 추가하고 싶었습니다 . 이를 사용하면 여러 API 요청을 할 경우 장기적으로 많은 시간을 절약 할 수 있습니다.
Sagar Ranglani

6
Firefox가 더 좋은 옵션입니다. 요청을 마우스 오른쪽 버튼으로 클릭하고 다시 보내거나 편집하고 다시 보내십시오.
eusoubrasileiro

@eusoubrasileiro : 감사합니다. Firefox의 네트워크 탭에있는 Edit & Resend (편집 및 다시 보내기) 버튼은 요청을 다시 보내주는 기능입니다. 누군가 크롬으로 추가 요청을하기를 바랍니다
firstpostcommenter

답변:


186

때문에 가져 오기 API가 크롬 (대부분의 다른 브라우저) 지원, 그것은 아주 쉽게 HTTP를 DevTools로 콘솔에서 요청을 할 지금이다.

예를 들어 JSON 파일 을 얻는 방법 :

fetch('https://jsonplaceholder.typicode.com/posts/1')
  .then(res => res.json())
  .then(console.log)

또는 새로운 리소스 를 게시 하려면 :

fetch('https://jsonplaceholder.typicode.com/posts', {
  method: 'POST',
  body: JSON.stringify({
    title: 'foo',
    body: 'bar',
    userId: 1
  }),
  headers: {
    'Content-type': 'application/json; charset=UTF-8'
  }
})
.then(res => res.json())
.then(console.log)

Chrome Devtools는 실제로 새로운 async / await 구문도 지원합니다 (비록 async는 비동기 함수 내에서만 사용할 수 있음).

const response = await fetch('https://jsonplaceholder.typicode.com/posts/1')
console.log(await response.json())

브라우저의 다른 HTTP 요청과 마찬가지로 요청에 동일한 출처 정책 이 적용 되므로 출처 간 요청을 피하거나 서버가 요청을 허용하는 CORS 헤더를 설정했는지 확인하십시오.

플러그인 사용 (이전 답변)

이전에 게시 한 제안 외에도 Chrome 용 Postman 플러그인이 잘 작동한다는 것을 알았습니다 . 헤더 및 URL 매개 변수를 설정하고 HTTP 인증을 사용하며 자주 실행하는 요청을 저장하는 등의 작업을 수행 할 수 있습니다.


3
op가 Postman을 사용하여 답변을 수락 했으므로 dev-tools에서 요청을 마우스 오른쪽 단추로 클릭하고 "cURL로 복사"를 클릭하면 cURL 명령을 Postman으로 가져 와서 요청을 다시 보내거나 변경할 수 있습니다. 참조 : getpostman.com/docs/postman/collections/data_formats- > "cURL로 가져 오기"
dhfsk

1
게시물 요청을하는 방법?
Nuhman

7
@Nuhman Fetch는 요청을 구성 할 수있는 두 번째 인수를 취합니다.fetch("/echo/json/", { method: "POST", body: data })
Christofer Eliasson

1
Chrome 개발자 도구 네트워크 기록에서 요청을 가져 오기복사 할 수도 있습니다 .
Vadzim

1
@mathtick mode사용할 수 있는 요청 옵션이 있습니다 fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }.. mode : "no-cors"는 요청에서 제한된 헤더 집합 만 허용합니다. 페치 및 코아 사용에 대한 자세한 정보
Christofer Eliasson

154

Chrome 개발자 도구의 네트워크 탭에서 캡처 한 요청을 수정하고 다시 발행하려면 다음 단계를 따르십시오.

  • Name요청을 마우스 오른쪽 버튼으로 클릭
  • 고르다 Copy > Copy as cURL
  • 명령 행에 붙여 넣기 (명령에는 쿠키 및 헤더 포함)
  • 필요에 따라 요청을 편집하고 실행

여기에 이미지 설명을 입력하십시오


11
Firefox에서는 재생하기 전에 통화를 편집 할 수 있지만 크롬에는 이러한 옵션이 없으므로 위의 답변이 있습니다.
Tofeeq

3
크롬 63 이상에서는 콘솔에 CURL 붙여 넣기가 작동하지 않습니다.
라비 파 레크

2
@RaviParekh 그가 Chrome 콘솔을 의미한다고 생각하지 않습니다. 그는 OS 명령 줄을 의미했습니다
Korayem

4
가져 오기로 복사를 사용하면 Chrome 개발자 도구 콘솔에서 직접 변경된 요청을 재발행 할 수 있으며, URL이 없거나 귀찮은 사용자에게는 대안이 될 수 있습니다.
Vadzim

1
그러나 curl을 사용하면 때로는 결과가 동일하지 않습니다. 브라우저에서 요청할 수 있는지 알기 위해 여기에 왔습니다. 브라우저의 자바 스크립트 사용 그것은 CORS 문제를 재현 할 수있게 해줍니다. 터미널의 컬이 나를 밝히지 않아야합니다.
Garry Dias

32

나는 오래된 게시물을 알고 있지만 여기에 두는 것이 도움이 될 수 있습니다.

최신 브라우저 는 이제 Fetch API를 지원합니다 .

다음과 같이 사용할 수 있습니다.

fetch("<url>")
    .then(data => data.json()) // could be .text() or .blob() depending on the data you are expecting
    .then(console.log); // print your data

추신 : 개선되었으므로 모든 CORS 검사를 수행합니다 XmlHttpRequest.


13

웹 페이지에 페이지에 jquery가 있으면 크롬 개발자 콘솔에서 작성할 수 있습니다.

$.get(
    "somepage.php",
    {paramOne : 1, paramX : 'abc'},
    function(data) {
       alert('page content: ' + data);
    }
);

그것을하는 jquery 방법!


14
이 웹 페이지는 jQuery를 사용하는 가정
mikemaccana

2
이것은 GET요청에 대한 것임을 기억하십시오. 다른 유형의 요청을하려면$.ajax
aksu

@mikemaccana 콘솔을 통해 모든 페이지에 jQuery를로드 할 수 있습니다.
nehem

1
이와 같이var script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
nehem

1
@itsneo 답변이 바로 그 자리에있었습니다! 액세스중인 페이지에 jquery 가로 드되어 있지 않은 경우 jquery를로드하는 방법. 그러면 플러그인없이 $ .ajax 또는 이와 동등한 것을 사용할 수 있습니다
Renato Chencinski

12

@dhfsk 답변에서 확장

여기 내 워크 플로우가 있습니다

  1. Chrome DevTools에서 조작하려는 요청을 마우스 오른쪽 단추로 클릭하고> Copy as cURL Chrome DevTools cURL로 복사

  2. 우편 배달부 열기

  3. Import왼쪽 상단을 클릭 한 다음Paste Raw Text Chrome의 Postman Paste Raw Text cURL

7

동일한 도메인에서 POST를 수행하려는 경우 개발자 도구를 사용하여 DOM에 양식을 삽입하고 다음을 제출할 수 있습니다.

문서에 양식을 삽입


4

위의 두 가지 답변을 결합하여 최고의 행운을 얻었습니다. Chrome에서 사이트로 이동 한 다음 DevTools의 네트워크 탭에서 요청을 찾으십시오. 요청과 복사를 마우스 오른쪽 버튼으로 클릭하고 cURL 대신 가져 오기로 복사하십시오 . 명령 행을 사용하지 않고 페치 코드를 DevTools 콘솔에 직접 붙여넣고 편집 할 수 있습니다.


3
upvoting / downvoting 할 때 변경 될 수 있으므로 위의 두 가지 답변으로 언급하지 마십시오
Urosh T.

4

헤더가있는 요청을 받으려면이 형식을 사용하십시오.

   fetch('http://example.com', {
      method: 'GET',
      headers: new Headers({
               'Content-Type': 'application/json',
               'someheader': 'headervalue'
               })
    })
    .then(res => res.json())
    .then(console.log)

2

웹 사이트에서 jquery를 사용하면 콘솔과 같은 것을 사용할 수 있습니다

$.post(
    'dom/data-home.php',
    {
    type : "home", id : "0"
    },function(data){
        console.log(data)
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


1

Chrome 콘솔에서 이미보고있는 페이지와 동일한 브라우징 컨텍스트를 사용하려면 요청을 간단하게 유지하십시오.

window.location="https://www.example.com";

1

$.post(
    'dom/data-home.php',
    {
    type : "home", id : "0"
    },function(data){
        console.log(data)
    })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>


1
임의의 코드를 게시하는 것이 아니라 답변을 설명해야합니다.
Jakub Muda
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.