【问题标题】:Adding "=" on ajax request body在ajax请求正文上添加“=”
【发布时间】:2016-07-18 16:29:54
【问题描述】:

我正在尝试发送 ajax 请求,但是当我发送作为字符串的变量“newValue”时,服务器总是会获取内容加上“=”。所以如果我发送“20.09.2009”,服务器会得到“20.09.2009=”。为什么? 我无法摆脱这个。下面是我的代码: 我必须发送特定的标头吗?

$.ajax({
        url: url,
        dataType: 'json',
        type: 'POST',
        data: newValue,
        success: function(data) {
            if (data.perrorCode){//there is a validation error
                this.setState({error: `Validation Error. Expected format: ${data.perrorMessage}. Got format: ${data.pvalue}`});
                callback(false);
            } else
                callback(true);
        }.bind(this),
        error: function(xhr, status, err) {
            console.error(url, status, err.toString());
        }.bind(this)

如果我之前打印出该值,则没有“=”。 如果我为谷歌浏览器使用高级 Rest Client 插件并设置完全相同的东西,服务器会正​​确响应,因为他只得到“20.09.2009”

【问题讨论】:

  • 你如何测试服务器得到了什么?您是否查看过浏览器开发人员工具的“网络”选项卡,查看是否在发送数据之前添加了该选项卡?你如何在服务器上阅读它?如果您要发送纯文本,为什么要将 Content-Type 设置为 text/plain 而不是保留默认值?
  • @Quentin 我已经更新了我的问题。我已经删除了“dataType:'json'”,但我仍然收到错误
  • 我删除了“dataType: 'json'”——为什么?
  • evernote.com/l/AAO0Lw6jywRO-5FrkIyATtDslMPsrMkXlyQ — 我无法重现该问题。 (仍然怀疑它是您的服务器端代码和您未修复 Content-Type 的方式的组合)。
  • 因为我不传json,我只传一个字符串

标签: ajax superagent


【解决方案1】:

正如@Quentin 建议的那样,我添加了contentType: 'text/plain' 属性,我的问题就消失了。

【讨论】:

    猜你喜欢
    • 2014-05-06
    • 2021-06-28
    • 2017-08-06
    • 2020-05-23
    • 1970-01-01
    • 2019-03-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多