Membuat Permintaan HTTP menggunakan alat Pengembang Chrome

206

Apakah ada cara untuk membuat permintaan HTTP menggunakan alat Pengembang Chrome tanpa menggunakan plugin seperti POSTER?

Leojh
sumber
1
Apakah Anda berharap membuat permintaan lintas domain, atau pada domain yang sama dengan saat Anda membuka alat pengembang?
Lukas
6
Untuk semua orang yang menginginkan fitur ini
beri
1
Semua itu jawaban yang berguna, hanya ingin menambahkan alat yang saya temukan Advanced Rest Client yang cukup berguna . Menggunakan ini dapat membantu seseorang menghemat banyak waktu dalam jangka panjang jika seseorang akan membuat beberapa permintaan API.
Sagar Ranglani
6
Firefox adalah opsi yang lebih baik untuk ini. cukup klik kanan pada permintaan dan kirim ulang atau edit dan kirim ulang.
eusoubrasileiro
@eusoubrasileiro: Terima kasih. Tombol Edit & Kirim Ulang di tab jaringan di Firefox untuk mengirim ulang permintaan adalah fitur yang sangat bagus. Semoga ada yang mengajukan permintaan untuk menambahkannya di chrome juga
firstpostcommenter

Jawaban:

187

Sejak API Ambil didukung oleh Chrome (dan sebagian besar browser lainnya), sekarang cukup mudah untuk membuat permintaan HTTP dari konsol devtools.

Untuk MENDAPATKAN file JSON misalnya:

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

Atau untuk POST sumber daya baru:

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 sebenarnya juga mendukung sintaks async / await baru (walaupun menunggu biasanya hanya dapat digunakan dalam fungsi async):

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

Perhatikan bahwa permintaan Anda akan tunduk pada kebijakan asal-sama , sama seperti permintaan HTTP lainnya di browser, jadi hindari permintaan lintas-asal, atau pastikan server menetapkan header-CORS yang memungkinkan permintaan Anda.

Menggunakan plugin (jawaban lama)

Sebagai tambahan untuk saran yang diposting sebelumnya saya telah menemukan plugin Postman untuk Chrome berfungsi dengan sangat baik. Ini memungkinkan Anda untuk mengatur parameter header dan URL, menggunakan otentikasi HTTP, menyimpan permintaan yang sering Anda lakukan, dan sebagainya.

Christofer Eliasson
sumber
3
Karena op menerima jawaban menggunakan Postman: Jika Anda mengklik kanan permintaan pada dev-tools dan "Copy as cURL" Anda kemudian dapat mengimpor perintah cURL ke Postman untuk mengirim ulang / mengubah permintaan. Lihat: getpostman.com/docs/postman/collections/data_formats -> "Mengimpor sebagai cURL"
dhfsk
1
Bagaimana cara membuat permintaan posting?
Nuhman
7
@Nuhman Fetch mengambil argumen kedua di mana Anda dapat mengonfigurasi permintaanfetch("/echo/json/", { method: "POST", body: data })
Christofer Eliasson
1
Perhatikan bahwa Anda juga dapat Menyalin karena mengambil permintaan apa pun dari riwayat jaringan Chrome Dev Tools.
Vadzim
1
@mathtick Ada modepilihan permintaan Anda dapat menggunakan: fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }. Perhatikan bahwa mode: "no-cors" hanya memungkinkan set header terbatas dalam permintaan. Info lebih lanjut tentang menggunakan fetch dan no-cors
Christofer Eliasson
154

Jika Anda ingin mengedit dan menerbitkan kembali permintaan yang telah Anda tangkap di tab Jaringan Alat Pengembang Chrome:

  • Klik kanan menu Name permintaan
  • Pilih Copy > Copy as cURL
  • Rekatkan ke baris perintah (perintah termasuk cookie dan tajuk)
  • Edit permintaan sesuai kebutuhan dan jalankan

masukkan deskripsi gambar di sini

aprikot
sumber
11
Firefox memungkinkan Anda untuk mengedit panggilan sebelum memutar ulang, tetapi tidak ada opsi seperti itu di chrome, jadi jawaban di atas adalah cara untuk pergi
Tofeeq
3
Dengan chrome 63+, menempelkan CURL di konsol tidak berfungsi.
Ravi Parekh
2
@RaviParekh Saya tidak berpikir dia maksud Chrome console, dia maksudkan baris perintah OS
Korayem
4
Menyalin sebagai mengambil memungkinkan untuk mengeluarkan kembali permintaan yang diubah secara langsung dari konsol Alat Dev Chrome dan merupakan alternatif yang layak bagi mereka yang tidak memiliki CURL atau ingin repot dengan itu.
Vadzim
1
Namun menggunakan curl, terkadang hasilnya tidak sama. Saya datang ke sini untuk mengetahui apakah saya dapat meminta dari browser. MENGGUNAKAN javascript browser. Hal ini memungkinkan saya mereproduksi masalah CORS, apa yang harus dilakukan oleh curl dari terminal saya.
Garry Dias
32

Saya tahu, posting lama ... tetapi mungkin bermanfaat untuk meninggalkan ini di sini.

Browser modern sekarang mendukung API Ambil .

Anda bisa menggunakannya seperti ini:

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

ps: Ini akan melakukan semua pemeriksaan CORS, karena ini merupakan peningkatan XmlHttpRequest.

tomblue
sumber
13

Jika halaman web Anda memiliki jquery di halaman Anda, maka Anda dapat melakukannya dengan menulis di konsol pengembang chrome:

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

Cara jquery melakukannya!

sadaf2605
sumber
14
Ini mengasumsikan halaman web akan menggunakan jQuery
mikemaccana
2
Ingat ini hanya untuk GETpermintaan, jika Anda ingin melakukan jenis permintaan lainnya, Anda mungkin ingin menggunakan$.ajax
aksu
@mikemaccana Anda dapat memuat jQuery ke halaman mana pun melalui konsol.
nehem
1
Seperti inivar script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
nehem
1
@itsneo jawaban tepat di tempat! Cara memuat jquery jika halaman yang sedang diakses belum memilikinya. Maka Anda dapat menggunakan $ .ajax atau yang setara, tanpa perlu plugin
Renato Chencinski
12

Memperluas jawaban @dhfsk

Inilah alur kerja saya

  1. Dari Chrome DevTools, klik kanan permintaan yang ingin Anda manipulasi> Copy as cURL Chrome DevTools Menyalin sebagai cURL

  2. Open Postman

  3. Klik Importdi sudut kiri atas ituPaste Raw Text Tukang Pos Tempel Teks mentah cURL dari Chrome
Korayem
sumber
7

Jika Anda ingin melakukan POST dari domain yang sama, Anda selalu bisa memasukkan formulir ke DOM menggunakan alat Pengembang dan mengirimkannya:

Formulir yang dimasukkan ke dalam dokumen

Craig Curtis
sumber
4

Saya beruntung menggabungkan dua jawaban di atas. Arahkan ke situs di Chrome, lalu temukan permintaan di tab Jaringan DevTools. Klik kanan permintaan dan Salin, tetapi Salin sebagai ambil alih-alih CURL. Anda dapat menempelkan kode ambil langsung ke konsol DevTools dan mengeditnya, alih-alih menggunakan baris perintah.

Aaron Parke
sumber
3
Jangan menyebut mereka sebagai 'dua jawaban di atas' karena itu mungkin berubah ketika naik /
turun
4

Untuk MENDAPATKAN permintaan dengan header, gunakan format ini.

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

jika Anda menggunakan jquery di situs web Anda, Anda dapat menggunakan sesuatu seperti ini di konsol Anda

$.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>

Nazor
sumber
1

Sederhananya, jika Anda ingin permintaan untuk menggunakan konteks penelusuran yang sama dengan halaman yang sudah Anda lihat maka di konsol Chrome lakukan saja:

window.location="https://www.example.com";
Dave Potts
sumber
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>

Fady sadakah
sumber
1
Anda harus menjelaskan jawaban Anda, bukan hanya mengirim beberapa kode acak.
Jakub Muda