【发布时间】:2014-07-23 07:28:41
【问题描述】:
是否可以使用 Casperjs 将 JSON 对象“POST”或“PUT”到 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);
}
还是没有运气。
【问题讨论】:
-
您可以注册
remote.message和page.error活动以查看发生了什么。 -
casper.on('remote.message', function(msg){}和casper.on( 'page.error', function (msg, trace) {}没有返回任何内容。 AJAX 运行良好,但由于某种原因我无法设置任何标题(或者我设置错误) -
你需要什么标题?从源码来看只能设置
overrideMimeType和contentType。 -
只是
contentType : application/json,但我已经尝试过使用它,并在示例中使用headers标签。其他人是否使用 casperjs 的客户端实用程序在 POST 和 PUT 方面取得了成功? -
您在哪里看到设置
overrideMimeType的功能?我在 CasperJS 网站上的文档中的任何地方都看不到它。
标签: javascript ajax phantomjs casperjs