我有下面的代码,我用它来命中节点.js端点。但是,当它被击中时,终结点 URL 会像这样附加一个&
,
http://localhost:3004/expenses/?q=&12/02/2014
因此,我没有得到想要的结果。
这是我的代码的样子,
$('#myForm').on('submit', (e)=>{
e.preventDefault();
$.ajax({
type: 'GET',
url: 'http://localhost:3004/expenses/?q=',
processData: false,
data: $('#startDate').val(),
contentType: 'application/json',
success:(data, status)=>{
// alert(status);
},
error:()=>{
alert('problem');
}
})
})
有人能说出一些信息吗?
这个问题很可能与告诉 jQuery 不要格式化请求数据processData: false
以及 GET url 已经包含?
有关。 鉴于您没有给出请求 json,我建议您减少您的调用以简化问题。
$.ajax({
type: 'GET',
url: 'http://localhost:3004/expenses/',
data: { q: $('#startDate').val() },
success:(data, status)=>{
// alert(status);
},
error:()=>{
alert('problem');
}
});
如果您未在选项中提供processData
,它会将您提供给它的数据转换为请求的查询参数。 鉴于这是一个 GET 请求,它将为您生成?q=<value>
。 正如注释中提到的,您不需要contentType: application/json
选项,因为这告诉jQuery将内容类型放在请求中,以便服务器知道您正在正文中发送json。 你不是,:)