通过jQuery ajax发布到流星应用程序? (跨域)

时间:2015-05-27 14:39:00

标签: ajax meteor cors jsonp xss

我正在尝试编写一个小片段,该片段将放在外部网站上并在提交时收集表单信息,并将其发布到我的流星应用程序。

到目前为止,我已尝试使用铁路由器,但我无法读取通过ajax发送的任何POST参数。

所以我有类似的东西(在外部网站上) -

jQuery("form").submit(function(e) {
    e.preventDefault();
    var aData = jQuery('form').find(":input:not(:hidden)").serializeArray();
    $.ajax({
        url: "http://localhost:3000/form_capture",
        data: aData,
        type: "POST",
        // dataType: "json",
        success: function(response){
            console.debug('success: ', response)
        },
        error: function(error){
            console.debug('error: ', error)
        }
    });
});

然后在我的Meteor应用程序中,使用铁路由器,我正在尝试 -

this.route('form_capture', {
    path: '/form_capture',
    onBeforeAction: function(){ 
        var aData = new Array();
        console.debug(this.request.headers, document.referrer);
        if(typeof(this.params.query) != "undefined") {
            $.each(this.params.query, function(sField, sVal){
                aData.push([sField,sVal]);
            });
            aData = $.extend({}, aData);
            var bSuccess = false;
            Meteor.call('formCapture', aData, function (error, result) {
                if (error) {
                    // handle error
                    console.debug(error);
                } else {
                    // examine result
                    console.debug(result);
                    bSuccess = true;
                }
            });
        }

        this.next();
    },
    action: function () {
        var data = {this_is:'a json object'}
        // this.response.setHeader('Content-Type', 'application/json');
        this.response.end(JSON.stringify(data));
    }
});

目前 - 上面的代码只是将默认模板html吐出回外部网站脚本 - 当我希望它提交并给我结果时。

我假设我可能出错了,因为我需要使用JSONP - 但如果是这种情况我该如何构建呢?

感谢您的帮助。

格雷格

0 个答案:

没有答案