有没有一种方法,使一个HTTP请求使用Chrome开发工具,而不使用插件像海报?
当前回答
我知道,老帖子……但把这个留在这里可能会有帮助。
现代浏览器现在支持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
ps:它将进行所有的CORS检查,因为它是一个改进的XmlHttpRequest。
其他回答
我知道,老帖子……但把这个留在这里可能会有帮助。
现代浏览器现在支持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
ps:它将进行所有的CORS检查,因为它是一个改进的XmlHttpRequest。
使用现代async/await javascript sintax,你可以做到如下所示。
const options = {method: 'GET', Content-Type: 'application/json'};
let res = await fetch('https://yourdomain.com/somedata.json', options);
let json = await res.json();
它将进行所有CORS检查(跨原产地资源共享)。如果web服务器已经允许来自所有域的CORS,你就准备好了。如果你需要在web服务器上启用CORS,请遵循以下两种情况:一种是nginx,另一种是node express。
与NGINX兼容
从所有网站启用CORS 如果您希望对所有网站启用CORS,即接受所有网站的跨域请求,请添加以下内容
add_header Access-Control-Allow-Origin *;
从一个域启用CORS
add_header Access-Control-Allow-Origin "stackoverflow.com";
使用Express启用CORS
对于node,它只是安装cors与yarn添加cors,然后使用它
var express = require('express')
var cors = require('cors')
var app = express()
app.use(cors())
app.get('/products/:id', function (req, res, next) {
res.json({msg: 'This is CORS-enabled for all origins!'})
})
app.listen(80, function () {
console.log('CORS-enabled web server listening on port 80')
})
扩展@dhfsk答案
这是我的工作流程
在Chrome DevTools中,右键单击您想要操作> Copy作为cURL的请求 开放的邮递员 单击左上角的导入,然后粘贴原始文本
由于Chrome(和大多数其他浏览器)支持Fetch API,现在很容易从devtools控制台发出HTTP请求。
获取一个JSON文件:
fetch(“https://jsonplaceholder.typicode.com/posts/1”) .then(res => res.json()) 不要犹豫(console.log)
或者POST一个新资源:
fetch (https://jsonplaceholder.typicode.com/posts, { 方法:“文章”, 身体:JSON.stringify ({ 标题:“foo”, 身体:“酒吧”, 用户标识:1 }), 标题:{ “内容类型”:“application / json;charset = utf - 8 ' } }) .then(res => res.json()) 不要犹豫(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-headers。
使用插件(旧答案)
作为之前发布的建议的补充,我发现Chrome的邮递员插件工作得非常好。它允许你设置头和URL参数,使用HTTP认证,保存你经常执行的请求等等。
$ . post ( “dom / data-home.php”, { 类型:"home", id: "0" }、功能(数据){ console.log(数据) }) < script src = " https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js " > < /脚本>
推荐文章
- 调试打印样式表的建议?
- 在JS的Chrome CPU配置文件中,'self'和'total'之间的差异
- 谷歌chrome扩展::console.log()从后台页面?
- 未捕获的SyntaxError:
- Access-Control-Allow-Origin不允许Origin < Origin >
- 如何设置断点在内联Javascript在谷歌Chrome?
- Chrome调试-打破下一个点击事件
- 谷歌Chrome表单自动填充和它的黄色背景
- 如何处理“未捕获(在承诺)DOMException:播放()失败,因为用户没有首先与文档交互。”在桌面与Chrome 66?
- 强制DOM重绘/刷新Chrome/Mac
- 我如何才能使setInterval也工作时,一个标签是不活跃的Chrome?
- 我如何调试一个HTTP POST在Chrome?
- 我如何从谷歌Chrome扩展获得当前选项卡的URL ?
- 调试WebSocket在谷歌Chrome
- 如何在浏览器中检查消失的元素?