我正在尝试编写一个小片段,该片段将放在外部网站上并在提交时收集表单信息,并将其发布到我的流星应用程序。
到目前为止,我已尝试使用铁路由器,但我无法读取通过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 - 但如果是这种情况我该如何构建呢?
感谢您的帮助。
格雷格