有没有一种方法可以使用Chrome Developer工具发出HTTP请求而无需使用POSTER之类的插件?
有没有一种方法可以使用Chrome Developer工具发出HTTP请求而无需使用POSTER之类的插件?
Answers:
由于Chrome(和大多数其他浏览器)支持Fetch API,因此现在很容易从devtools控制台发出HTTP请求。
要GET例如一个JSON文件:
fetch('https://jsonplaceholder.typicode.com/posts/1')
.then(res => res.json())
.then(console.log)
或POST新资源:
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实际上还支持新的异步/等待语法(即使通常只能在异步函数中使用等待):
const response = await fetch('https://jsonplaceholder.typicode.com/posts/1')
console.log(await response.json())
请注意,您的请求将遵循同源策略,就像浏览器中的任何其他HTTP请求一样,因此请避免跨源请求,或者确保服务器设置允许您请求的CORS标头。
使用插件(旧答案)
除了以前发布的建议之外,我发现Chrome 的Postman插件可以很好地工作。它允许您设置标题和URL参数,使用HTTP身份验证,保存您经常执行的请求等。
fetch("/echo/json/", { method: "POST", body: data })
mode
您可以使用一个请求选项:fetch("/echo/json/", { method: 'POST', mode: 'no-cors' }
。请注意,模式:“ no-cors”仅在请求中允许一组有限的标头。有关使用获取和无芯的更多信息
如果您要编辑并重新发出在Chrome开发者工具的“网络”标签中捕获的请求,请执行以下操作:
Name
请求的Copy > Copy as cURL
如果您的网页中包含jquery,则可以在chrome开发人员控制台上编写该代码:
$.get(
"somepage.php",
{paramOne : 1, paramX : 'abc'},
function(data) {
alert('page content: ' + data);
}
);
它的jQuery方式!
GET
请求,如果您要执行其他类型的请求,则可能要使用$.ajax
var script = document.createElement("script"); script.src = "http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.0.js"; document.body.appendChild(script);
结合以上两个答案,我很幸运。导航到Chrome中的站点,然后在DevTools的“网络”标签上找到请求。右键单击请求并复制,但复制为获取而不是cURL。您可以直接将获取代码粘贴到DevTools控制台中并进行编辑,而不必使用命令行。
要获取带有标题的请求,请使用此格式。
fetch('http://example.com', {
method: 'GET',
headers: new Headers({
'Content-Type': 'application/json',
'someheader': 'headervalue'
})
})
.then(res => res.json())
.then(console.log)
$.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>