我是GAE / NODEJS的新手。有很多建议可以将由GAE托管的调用称为跨域调用,但是我很难让我的node js应用程序调用另一个域API。要让GAE允许跨域调用,我需要做些什么吗?我的代码是:
app.get('/listProducts', (req, res) => {
request.get('https://[cross domain]/api/2.0/products', function (error, response, body) {
console.log('error:', error); // Print the error if one occurred
console.log('statusCode:', response && response.statusCode); // Print the response status code if a response was received
console.log('body:', body); // Print the HTML for the Google homepage.
}).auth(null, null, true, '[key goes here]');
答案 0 :(得分:0)
您可以允许配置app.yaml文件或在http标头中进行设置。 这里是doc(正在寻找 CORS支持)
遵循示例:
您可能有一个访问资产的游戏应用 mygame.appspot.com 由 myassets.appspot.com 托管。但是,如果mygame试图 对myassets进行JavaScript XMLHttpRequest,它将不会成功 除非myassets的处理程序返回一个 Access-Control-Allow-Origin :响应标头包含值 http://mygame.appspot.com。
这是使静态文件处理程序返回所需的响应标头值的方法:
handlers:
- url: /images
static_dir: static/images
http_headers:
Access-Control-Allow-Origin: http://mygame.appspot.com
# ...
注意:如果您想允许所有人访问您的资产,则可以使用通配符'*'代替http://mygame.appspot.com。
答案 1 :(得分:0)
was doing newbie - i should have returned a response code, eg response.status(200).send("ok").end();