【发布时间】:2019-08-03 18:16:22
【问题描述】:
我的目标是使用谷歌云功能将发布请求的结果插入到 bigquery 中。
我的问题是云函数正在向我的表中插入空值,因此它无法从发布请求中取回参数。
这是我的发帖请求:
<script>
var event_category = 'action';
var event_name = 'click';
var page_url = 'test'
var request = new XMLHttpRequest();
request.open('POST', 'url to my cloud function');
request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');
params = {
event_category: event_category,
event_name: event_name,
page_url: page_url
}
request.send( JSON.stringify(params));
console.log(JSON.stringify(params));
</script>
谷歌云功能代码
const bigquery = require('@google-cloud/bigquery')();
var result = "";
function insertHandler(err, apiResponse) {
result.writeHead("204",
"No Content",
{
"access-control-allow-origin": "urlofmywebsite",
"access-control-allow-methods": "GET, POST, OPTIONS",
"access-control-allow-headers": "content-type, accept",
"access-control-max-age": 10, // Seconds.
"content-length": 0
}
);
return(result.end());
}
exports.loadBQ = function loadBQ (req, res) {
result = res;
var dataset = bigquery.dataset("google_analytics_test");
var table = dataset.table("google_tag_manager");
var event_category;
var event_name;
var page_url;
try{
event_category = req.body.event_category;
event_name = req.body.event_name;
page_url = req.body.page_url;
var row = {
json: {
event_category : event_category,
event_name: event_name,
page_url: page_url
}
};
var options = {
raw: true
};
table.insert(row, options, insertHandler);
} catch(e){insertHandler(true, false)};
};
如前所述,问题在于从谷歌云功能读取帖子请求,不知道如何解除阻止
【问题讨论】:
标签: javascript post google-cloud-platform google-cloud-functions