2单个ejs页面上的AJAX调用

时间:2018-02-23 07:00:11

标签: javascript node.js ajax ejs

我有一个有2个AJAX调用的页面,让我们说/ api1和/ api2。

/ api1使用ejs引擎呈现页面,此页面上有一个按钮,点击/ api2被调用,这将打开一个模态/弹出窗口。

虽然弹出窗口已打开,但它只显示/ api1的数据,而不是/ api2。

伪代码如下:



$("#my_button").click(function(e) {
    e.preventDefault();

    $.ajax({
      url: '/api2',
      method:'GET',
      data:{fieldname:'<%= data.fieldname %>'},
      success: function(dataFromapi2){
        $("#myModal").modal("show");
        $("#myTable").html('<table class="table table-bordered">'+
          '<thead><tr>' +
          '<th>Name</th>'+
        '</tr>'+
        '</thead>'+
        '<tbody>'+

        '<tr>'+
          '<td><%= dataFromapi2.name %></td>'+
          '</tr>'+
          '</tbody>'+
          '</table>'
        );
      },
      error: function (error) {
        $('#process_status').html(error);
      }
    });
  });
&#13;
<div class="abc">
	<!-- Diplaying the data of /api1 using <%= data.fieldname %>  -->
	<button class="btn" id="my_button" name="my_button">
	
	
	<!-- Modal -->
  <div class="" id="myModal" role="dialog">
    <div class="modal-dialog">

      <!--Modal content-->
      <div class="modal-content">
        <div class="modal-body">
          <fieldset>
            <div id="myTable" class="table-responsive">
              
            </div>
          </fieldset>
        </div>
      </div>
    </div>
  </div>
	
</div>
&#13;
&#13;
&#13;

上面的代码存在于单个ejs文件(sample.ejs)中,该文件在调用/ api1时呈现。

当调用/ api2时,它会在浏览器控制台上返回正确的响应,但在ejs标记(&lt; %%&gt;)中使用该响应时,它会返回一个错误(未定义dataFromapi2。)

1 个答案:

答案 0 :(得分:0)

你的jQuery ajax调用似乎在调用api2,这就是你想要的。如果您的视图看到api1而不是api2的结果,那么我建议从路由器开始检查您的服务器配置。之后,直接在服务器上使用curl http://localhost/api2验证控制器是否正常运行。如果仍然无效,那么dataFromapi2.name一定有问题。如果没有进一步的信息,将很难调试您的问题。