如何发送Ajax POST请求

时间:2016-06-01 14:39:21

标签: javascript jquery ajax node.js

我使用此代码将POST发送到我的节点API以生成PDF,我的节点控制台给了我这些错误:

$('#renderPDF').click(function(){
      var request = $.ajax({
        type: "POST",
        url: 'http://localhost:8080/api/v1/generate',
        data: {doc:"<h1>test 123</h1>"},
      });
      request.done(function(data){
        console.log(data);
      });
});
  

info:TypeError:null不是对象(评估&#39; child.transform&#39;)   info:info:phantomjs://code/shim.js:变换信息中的157:
  phantomjs://code/shim.js:阅读中的138 ​​

当我发送POST(使用Postman工具)时,PDF会被渲染,一切正常。

localhost:8080/api/v1/generate?doc=<h1>testing 123</h1>

我的POST请求出错了什么?

2 个答案:

答案 0 :(得分:0)

我认为您的问题是您将doc参数作为POST参数发送,当它看起来像一个查询字符串时,请尝试:

$('#renderPDF').click(function(){
  var request = $.ajax({
    type: "POST",
    url: 'http://localhost:8080/api/v1/generate?doc=<h1>testing 123</h1>',
  });
  request.done(function(data){
    console.log(data);
  });
});

希望它能解决你的问题。

编辑:有关此内容的更多信息。您可能正在发送请求(来自邮递员)作为POST请求,但发送的值实际上不是POST参数,它们是查询字符串(如果您愿意,则为“GET”参数)。

答案 1 :(得分:0)

您可能需要/可以使用formData

更轻松地实现这一目标

e.g。

data = new FormData();
data.append( 'doc', "<h1>test 123</h1>" );

$.ajax({
    url: 'http://localhost:8080/api/v1/generate',
    data: data,
    processData: false,
    type: 'POST',
    success: function ( data ) {
        alert( data );
    }
});