Esiste un modo per effettuare una richiesta HTTP utilizzando gli strumenti di sviluppo di Chrome senza utilizzare un plug-in come POSTER?
Esiste un modo per effettuare una richiesta HTTP utilizzando gli strumenti di sviluppo di Chrome senza utilizzare un plug-in come POSTER?
Risposte:
Poiché l' API Fetch è supportata da Chrome (e dalla maggior parte degli altri browser), ora è abbastanza semplice fare richieste HTTP dalla console devtools.
Per GET un file JSON, per esempio:
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(res => res.json())
.then(console.log)
O POST una nuova risorsa:
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 attualmente supporta anche la nuova sintassi asincrona / waitit (anche se waitit normalmente può essere utilizzato solo all'interno di una funzione asincrona):
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1')
console.log(await response.json())
Nota che le tue richieste saranno soggette alla stessa politica di origine , proprio come qualsiasi altra richiesta HTTP nel browser, quindi evita le richieste di origine incrociata o assicurati che il server imposti le intestazioni CORS che consentono la tua richiesta.
Usare un plugin (vecchia risposta)
In aggiunta ai suggerimenti precedentemente pubblicati, ho trovato che il plug-in Postman per Chrome funzionava molto bene. Ti consente di impostare intestazioni e parametri URL, utilizzare l'autenticazione HTTP, salvare le richieste che esegui frequentemente e così via.
fetch("/echo/json/", { method: "POST", body: data })
mode
opzione richiesta è possibile utilizzare: fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }
. Nota che la modalità: "no-cors" consente solo un numero limitato di intestazioni nella richiesta. Maggiori informazioni sull'uso di fetch e no-cors
Se desideri modificare e riemettere una richiesta che hai acquisito nella scheda Rete degli Strumenti di sviluppo di Chrome:
Name
sulla richiestaCopy > Copy as cURL
Lo so, vecchio post ... ma potrebbe essere utile lasciarlo qui.
I browser moderni ora supportano l' API Fetch .
Puoi usarlo in questo modo:
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: effettuerà tutti i controlli CORS, poiché è migliorato XmlHttpRequest
.
Se la tua pagina web ha jquery nella tua pagina, puoi farlo scrivendo sulla console degli sviluppatori di Chrome:
$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);
Il suo modo jquery di farlo!
GET
richieste, se vuoi fare altri tipi di richieste, potresti usare$.ajax
var script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
Se vuoi fare un POST dallo stesso dominio, puoi sempre inserire un modulo nel DOM usando gli strumenti per sviluppatori e inviare che:
Ho avuto la migliore fortuna combinando due delle risposte sopra. Passare al sito in Chrome, quindi trovare la richiesta nella scheda Rete di DevTools. Fare clic con il tasto destro del mouse sulla richiesta e Copia, ma Copia come recupero anziché cURL. È possibile incollare il codice di recupero direttamente nella console DevTools e modificarlo, anziché utilizzare la riga di comando.
Per ottenere richieste con le intestazioni, utilizzare questo formato.
fetch('http://example.com', {
method: 'GET',
headers: new Headers({
'Content-Type': 'application/json',
'someheader': 'headervalue'
})
})
.then(res => res.json())
.then(console.log)
se usi jquery sul tuo sito web, puoi usare qualcosa di simile alla tua console
$.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>
Semplificando, se desideri che la richiesta utilizzi lo stesso contesto di navigazione della pagina che stai già visualizzando, nella console di Chrome fai semplicemente:
window.location="https://www.example.com";
$.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>