Node.端点与号在进行 ajax 调用时被附加



我有下面的代码,我用它来命中节点.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。 你不是,:)

最新更新