我试图使用fetch发布JSON对象。据我所知,我需要在请求正文中附加一个字符串化对象,例如:
fetch("/echo/json/",
{
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: "POST",
body: JSON.stringify({a: 1, b: 2})
})
.then(function(res){ console.log(res) })
.catch(function(res){ console.log(res) })
当使用jsfiddle的JSON echo时,我希望看到我发送回来的对象({a:1,b:2}
),但这没有发生-chrome devtools甚至没有将JSON显示为请求的一部分,这意味着它没有被发送。
在搜索引擎中,我最终讨论了使用fetch发布非json数据的主题,所以我想添加这个。
对于非json,您不必使用表单数据。您可以简单地将Content-Type
标头设置为Application/x-wan-form-urlencoded
并使用字符串:
fetch('url here', {
method: 'POST',
headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important, if this content-type is not set it wont work
body: 'foo=bar&blah=1'
});
构建body
字符串的另一种方法是使用库,而不是像我上面那样输入它。例如,来自query-string
或qs
包的stringify
函数。所以使用它看起来像:
import queryString from 'query-string'; // import the queryString class
fetch('url here', {
method: 'POST',
headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important, if this content-type is not set it wont work
body: queryString.stringify({for:'bar', blah:1}) //use the stringify object of the queryString class
});
我认为您的问题是jsfiddle
只能处理form-urlencoded
请求。但是发出json请求的正确方法是将正确的json
作为正文传递:
fetch('https://httpbin.org/post', {
method: 'POST',
headers: {
'Accept': 'application/json, text/plain, */*',
'Content-Type': 'application/json'
},
body: JSON.stringify({a: 7, str: 'Some string: &=&'})
}).then(res => res.json())
.then(res => console.log(res));
借助ES2017async/wait
支持,这是POST
JSON有效负载的方法:
(async () => {
const rawResponse = await fetch('https://httpbin.org/post', {
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({a: 1, b: 'Textual content'})
});
const content = await rawResponse.json();
console.log(content);
})();
问题内容: 我是iOS开发的新手,我无法提出一个简单的Json POST请求。我有一个包含用户名和密码的NSDictionary,我想将这些值作为Json发送到服务器并获得响应。我在不使用restkit的情况下进行了工作,但是我无法弄清楚如何使用RestKit来完成相同的工作,而且也找不到我想要的很好的例子。 服务器期望这样的Json: 我知道RestKit中包含一个Json解析器,但是我找不到有
问题内容: 我正在尝试使用访存api来带回一些数据,但是一旦检索到它就无法将其映射到控制台。 我得到的错误是 response.map不是函数 所以我试图解析响应(即var data = JSON.parse),该响应不起作用,并显示错误 有趣的是,当对XMLHttp请求执行相同操作时,需要解析它,因此我也想知道为什么这两种检索数据方法之间的区别。 如果有人能指出正确的方向,我将不胜感激。 问题答
我试图使用javascript中的Fetch API向spring应用程序发送一些表单数据。我有以下代码来发送表单数据: 但是我得到一个415状态错误“不支持的媒体类型”。即使我将标头“Content-Type”专门设置为“Application/json”,它也会像“text/平原”一样发送 这是我从服务器得到的响应: 以下是在Spring中接受请求的方法: 我不知道为什么请求是以“text/p
问题内容: 我有一个AJAX调用,返回的是这样的JSON: 在div中,我将得到: 如何遍历此数据并将每个名称放在div中? 问题答案: 假设您的服务器端脚本未设置正确的响应标头,则需要使用参数向jQuery指示这是JSON 。 然后,您可以使用该函数遍历数据: 或使用方法:
我试图使用一个代码,将数据从一个mySQL数据库绑定到一个变量的数据,把所有产生的$x到一个PHP数组,最后将其转换为JSON格式。然后,我将JSON转换为javascript来处理来自数据库的数据。 请查看我的代码: 我的问题是,为什么页面将其显示为输出,而不将数据传输到阵列 "准备("SELECT x从数据")) { $stmt-
Fetch 是一个支持下拉刷新及滚动加载的组件。因为这两个操作最终目的都是为了做数据请求,所以取名“Fetch”。 使用 <template> <div class="fetch-demo" style="position:absolute;top:0;left:0;bottom:0;right:0;"> <Fetch @fetch="handleFetch">