2017-01-05 44 views
-2

我想将两个输入的日期作为参数发送到服务。我的HTML代码:Ajax - 如何将参数从html输入发送到服务

<input type="date" name="dateFrom" value="2016-10-29"> 
<input type="date" name="dateTo" value="2016-11-29"> 
<a class="action-button" id="history-report">Generate report</a> 

现在我刚刚对日期值进行了硬编码,但后来他们将从日历中选择。

我想将日期值与请求一起发送。我写了下面的代码发送给他们的服务:

$('#history-report').click(
    function(event){ 
     event.preventDefault(); 
     showLoading() 
     const dateFrom = $('input[name="dateFrom"]').val(); 
     const dateTo = $('input[name="dateTo"]').val(); 
     $.ajax({ 
      type:"POST", 
      url:'/params/generate-commission-disposition-report', 
      data: { 
       dateFrom: dateFrom, 
       dateTo: dateTo 
      }, 
      dataType:'json' 
     }).done(function(response){ 
      hideLoading(); 
      if(response.success === true){ 
       $('#ajax-success').html(response.msg); 
       showSuccess(5000); 
      }else{ 
       showError("Generation error"); 
      } 
     }) 
     .fail(function(response){ 
      hideLoading(); 
      showError("Generation failed") 
     }); 
    }  
); 

代码是否正确的解决方案?目前它无法正常工作,但我不确定是否有错误出现在此处或稍后使用的服务中。

+2

您是否使用过浏览器工具来调试源代码?浏览器控制台会告诉你,如果你的javascript有错误,网络工具将显示任何调用/请求和响应...如果你还没有,我建议你调试你的源代码。 – NewToJS

+0

当你说'不工作'...你会得到你的'代错误'或'代失败'的消息吗?或者什么都不显示?正如NewToJS要求您应该在浏览器的开发人员控制台中发布输出,如果您仍然无法找到问题 – Milney

+0

在Chrome控制台中,我得到'500(内部服务器错误)'。在FIrefox上我什么也没有,只是网站上显示'失败'的消息(在失败方法中定义)。 – Hub26

回答

1

你已经写了dataFrom和dataTo而不是dateFrom和dateTo在下面两行。请改变它们,它会工作:

const dateFrom = $('input[name="dateFrom"]').val(); 
const dateTo = $('input[name="dateTo"]').val(); 

其他所有的事情看起来不错。

+0

你是对的,但纠正它并没有太大的改变,它仍然没有生成。无论如何,如果你说旁边看起来很好,我会更深入地了解服务的运作方式。 – Hub26

+0

尝试在调试器的网络选项卡中检查您的请求,检查此请求的参数是否包含正确的值。还要在你的服务方法上添加一个断点并检查它是否被调用。 ! –

+0

事实上,这个问题现在只依赖于服务。谢谢! – Hub26

相关问题