进行Ajax调用时会附加Node.js端点与号

时间:2019-05-28 13:08:34

标签: javascript jquery node.js

我有下面的代码,用于打入node.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');
        }
    })
})

有人可以照亮吗?

1 个答案:

答案 0 :(得分:1)

问题很可能与processData: false告诉jQuery不要格式化请求数据的格式有关,并且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。你不是吗,:)