有没有办法使用 Chrome 开发者工具发出 HTTP 请求而不使用像 POSTER 这样的插件?
13 回答
由于Chrome(和大多数其他浏览器)支持Fetch API,现在从 devtools 控制台发出 HTTP 请求非常容易。
例如获取一个 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 语法(尽管 await 通常只能在 async 函数中使用):
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1')
console.log(await response.json())
请注意,您的请求将受到同源策略的约束,就像浏览器中的任何其他 HTTP 请求一样,因此要么避免跨域请求,要么确保服务器设置允许您的请求的 CORS 标头。
使用插件(旧答案)
作为对之前发布的建议的补充,我发现 Chrome 的Postman插件运行良好。它允许您设置标头和 URL 参数、使用 HTTP 身份验证、保存您经常执行的请求等。
如果您的网页在您的页面中有 jquery,那么您可以在 chrome 开发人员控制台上编写它:
$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);
它的jquery方式!
结合上面的两个答案,我很幸运。在 Chrome 中导航到该站点,然后在 DevTools 的 Network 选项卡上找到该请求。右键单击请求并复制,但复制为 fetch而不是 cURL。您可以将获取代码直接粘贴到 DevTools 控制台并进行编辑,而不是使用命令行。
要获取带有标头的请求,请使用此格式。
fetch('http://example.com', {
method: 'GET',
headers: new Headers({
'Content-Type': 'application/json',
'someheader': 'headervalue'
})
})
.then(res => res.json())
.then(console.log)
如果你在你的网站上使用 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>
保持简单,如果您希望请求使用与您已经查看的页面相同的浏览上下文,那么在 Chrome 控制台中只需执行以下操作:
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>
是的,有一种方法无需任何 3rd 方扩展。
我已经构建了javascript-snippet(您可以将其添加为 browser-bookmark),然后在任何站点上激活以监控和修改请求。:
如需进一步说明,请查看 github 页面。
您可以在 Firefox 的 Inspector 中编辑/重新发送请求,而无需使用任何第三方,如下所示:
- 按下F12以在 Firefox 中打开检查器 ▶ 转到“网络”选项卡
- 找到您的 API 请求并单击它,“标题”部分将出现在右侧(您可以在顶部的栏中进行过滤)
- “标题”选项卡带有一个Resend按钮,您可以在此处重新发送或编辑并重新发送