使用casperjs通过AJAX发送POST / PUT

时间:2014-07-23 07:28:41

标签: javascript ajax phantomjs casperjs

是否可以使用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);
}

仍然没有运气。

1 个答案:

答案 0 :(得分:0)

您需要使用正确的设置键传递正确的内容类型。所以这应该工作。如果您的服务器端点在请求正文中只需要JSON,那么您需要先将其序列化。

return JSON.parse(__utils__.sendAJAX("url to API", 'POST', JSON.stringify(jsonObject), false, 
{
    contentType: "application/json"
}));