【发布时间】: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