当前位置: 首页 > 知识库问答 >
问题:

邮递员表单数据和x-www-form-urlencoded可以工作,但原始json不能

公孙和怡
2023-03-14

我有一个表单,它将凭据发送到endpoint进行身份验证,并且它应该返回一个令牌。我想用javascript替换HTML表单,但我无法让它工作。为了找出它不起作用的原因,我试着对Postman做了同样的处理,结果是,当我发送带有body作为表单数据的POST请求时,效果很好。以x-www-form-urlencoded的形式发送也很好,但当我以json(内容类型:“application/json”)的形式发送时就不行了。

请求JSON数据:

{
    "username": "my_username",
    "password": "my_password",
    "referer": "http://127.0.0.1:5500",
    "f": "json"
}

我的密码包含字母、点和下划线,但没有其他特殊字符。我的密码只有一个感叹号作为特殊字符。

endpoint可以区分正在发送的表单或javascript(获取API)吗?另外,有什么原因导致endpoint在发送json而不是其他两个选项时无法工作吗?

共有1个答案

闾丘淇
2023-03-14

endpoint可以区分正在发送的表单或javascript(获取API)吗?

不是真的。

如果它是一个跨源请求,那么JS将添加一个origin头。

客户端代码也可以显式地添加不同的标头。

发送json而不是其他两个选项时,endpoint无法工作有什么原因吗?

如果终结点不是为解析JSON格式的请求而设计的。

听起来你把事情复杂化了。

只需编写JS代码,使用application/x-www-form-urlencodedmultipart/form data(因为它们是它支持的格式)而不是JSON来发出POST请求。

您也可以重写endpoint以支持JSON。

 类似资料:
  • 问题内容: 之间有什么区别 request.ContentType =“ application / json; charset = utf-8”; 和 webRequest.ContentType =“ application / x-www-form-urlencoded”; 问题答案: 第一种情况是告诉Web服务器您正在发布JSON数据,如下所示: 第二个选项是告诉Web服务器您将对URL中

  • 我试图弄清楚为什么当Spring处理程序方法包含注释时,我不能从jquery.ajax调用接收请求。考虑以下几点: HTML/JavaScript: Java: 如果出现注释,上述操作将失败,并返回一个415错误(不会生成异常)。但是,如果删除注释(即参数签名只是),那么将调用该方法并将JSON返回给JavaScript。 为什么会这样呢?请求包括请求正文中的数据。注释不应该处理这样的请求吗? 我

  • RESTAPI在映射到Java对象时采用输入内容类型:application/x-www-form-urlencoded,如 在表单输入请求中,我正在设置my_name和my_phone的值,但MyRequest对象的myName和myPhone为null。 我正在使用Jackson annotations 2.3 jar 有什么建议吗?可能有什么问题?

  • 当内容类型不是text/html、text/plain或text/xml,而是application/x-www-form-urlencoded内容类型时,我很难理解如何设置字符集。 给出以下(简化的)javascript代码: 如果我没有显式设置编码, Firebug告诉我内容类型是"Application/x-www-form-urlencoded; charset=UTF-8"。 例如,如果

  • .NET Framework 4.8 Postman Version7.19.1 Swashbuckle 5.6.0,nugget包 我有一个使用Swagger(Swashbuckle)的大API,我想将开放的API模式作为一个集合导入到Postman中。 在继续并将模式粘贴到Postman中后,我注意到我的所有Post请求都“中断”了。当转到时,它显示为,而不是原始的正文。 相反,它看起来是这样

  • 我为Django API项目编写了一个基于angular的客户端应用程序。其中一个endpoint接受application/x-www-form-urlencoded格式的请求,因为它同时包含文件和字符串数据,我很确定它在服务器端工作正常——我已经使用POSTMAN准备了一个application/x-www-form-urlencoded请求: 当然,服务器响应正确,并且已添加文件。以下是确切