是否可以使用Casperjs'POST'或'PUT'将JSON对象传递给API?
我可以成功地对我的API进行GET调用。我似乎无法让POST / PUT工作。
我正在尝试通过我设置的API将JSON对象发送到我的网站。我正在使用最新版本的Casperjs,并通过命令行设置--web-security = no。我阅读了文档,但没有找到将标题值添加到AJAX调用的地方。我看到有一个“选项”参数,但以下内容不起作用。我知道JSON和URL都是正确的,因为我已经尝试使用chrome扩展邮递员。我似乎无法弄清楚如何添加标题。
try {
return JSON.parse(__utils__.sendAJAX("url to API", 'POST', jsonObject, false,
{
dataType: "json",
headers:{
contentType: "application/json; charset=utf-8"
}
}));
} catch (e) {
console.log(e);
}
try / catch中没有返回任何内容。如果我打印JSON.parse,它只是我网页上的HTML,要求正确的标题。
我尝试了不同的设置变体,甚至尝试过任何传递。例如:
try {
return JSON.parse(__utils__.sendAJAX("url to API", 'POST', jsonObject, false, null));
} catch (e) {
console.log(e);
}
仍然没有运气。
答案 0 :(得分:0)
您需要使用正确的设置键传递正确的内容类型。所以这应该工作。如果您的服务器端点在请求正文中只需要JSON,那么您需要先将其序列化。
return JSON.parse(__utils__.sendAJAX("url to API", 'POST', JSON.stringify(jsonObject), false,
{
contentType: "application/json"
}));