如何发送 Ajax POST 请求
2016-06-01
120
我正在使用此代码向我的节点 API 发送 POST 以生成 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 is not an object (evaluating 'child.transform') info: info: phantomjs://code/shim.js:157 in transform info:
phantomjs://code/shim.js:138 in read
当我发送 POST(使用 Postman 工具)时,PDF 被呈现并且一切正常。
localhost:8080/api/v1/generate?doc=<h1>testing 123</h1>
我在 POST 请求中做错了什么?
2个回答
也许你需要/可以使用 formData
更轻松地实现它,例如
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 );
}
});
Avraam Mavridis
2016-06-01
我认为您的问题是您将
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”参数)。
juanlu
2016-06-01