通过Parse Cloud代码发出HTTP请求

时间:2015-12-04 21:38:13

标签: javascript parse-platform cors httprequest cloud-code

所以我试图让云代码执行一个后续事件来ping另一个位置以进行一些数据保存。

它还有一些数据需要发送。

Parse.Cloud.afterSave("ArtPiece", function(request) {
var artistURL = 'http://www.gallery-admin-dev.iartview.com/Gilmans/imageSave.php';

var pieceName = "Robert Rauschenberg Quote";
var url = 'http://www.gilmancontemporary.com/wp-content/uploads/2015/06/Delicate_Garden.The_Bear.48x42.jpeg';

Parse.Cloud.httpRequest({
    url: artistURL,
    dataType : "text",
    crossDomain: true,
    type:"GET",
    data : {
      pieceName : pieceName,
      url : url
    },

    success: function(httpResponse) {
        response(httpResponse.text);
    },
    error: function(httpResponse) {
        response('Request failed with response code ' + httpResponse.status)
    }
});

});

代码不会出现错误或任何警告。我保存/创建条目工作正常。

已经处理了Cors,因为我可以使用ajax脚本成功进行此调用。

任何线索为什么这不发送? 我可以在解析httpRequest中没有数据吗? 它可以不是跨域吗?

可替换地 有没有办法在Parse Cloud之外测试这段代码???

1 个答案:

答案 0 :(得分:2)

您在云中调用httpRequest功能的方式不正确。您也不需要担心CORS,因为您不在浏览器环境中工作。试试这个:

Parse.Cloud.httpRequest({
    url: artistURL,
    params: {
      pieceName : pieceName,
      url : url
    },
    success: function(httpResponse) {
        response(httpResponse.text);
    },
    error: function(httpResponse) {
        response('Request failed with response code ' + httpResponse.status)
    }
});

要测试此外部云环境,您可以使用curl命令。它将类似于:

curl -G -v "http://www.gallery-admin-dev.iartview.com/Gilmans/imageSave.php" --data-urlencode "pieceName=Robert Rauschenberg Quote,url=http://www.gilmancontemporary.com/wp-content/uploads/2015/06/Delicate_Garden.The_Bear.48x42.jpeg"