Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js AMP电子邮件| CORS标题问题?在操场上工作,而不是在Gmail上_Node.js_Email_Cors_Amp Email - Fatal编程技术网

Node.js AMP电子邮件| CORS标题问题?在操场上工作,而不是在Gmail上

Node.js AMP电子邮件| CORS标题问题?在操场上工作,而不是在Gmail上,node.js,email,cors,amp-email,Node.js,Email,Cors,Amp Email,我尝试使用操场发送AMP电子邮件。AMP电子邮件本身工作正常,在本地主机上测试并在Azure环境中运行。内置节点/类型脚本。即使在AMP游乐场中,它也会运行,具有以下CORS标题: res.set('Access-Control-Allow-Origin', 'https://amp.gmail.dev'); res.set('AMP-Access-Control-Allow-Source-Origin', 'amp@gmail.dev'); res.set('Access-Control-Ex

我尝试使用操场发送AMP电子邮件。AMP电子邮件本身工作正常,在本地主机上测试并在Azure环境中运行。内置节点/类型脚本。即使在AMP游乐场中,它也会运行,具有以下CORS标题:

res.set('Access-Control-Allow-Origin', 'https://amp.gmail.dev');
res.set('AMP-Access-Control-Allow-Source-Origin', 'amp@gmail.dev');
res.set('Access-Control-Expose-Headers', 'AMP-Access-Control-Allow-Source-Origin');
一旦我从表单发送“GET”请求,它将不会显示任何内容。我将在Chrome的网络选项卡中收到错误:

HTTP/1.1 400 Bad Request
Vary: Origin
Vary: X-Origin
Vary: Referer
Content-Type: application/json+protobuf; charset=UTF-8
{"1":9,"2":"Access-Control-Allow-Origin header value must be one of the acceptable values."}
--batch_eLkTuK4rnSAoy6L5ZSMGCkUK8R4_Ih_c--
我已经尝试过的: 允许在Gmail>OK的开发者设置中使用AMP电子邮件(我确实看到了电子邮件,但在提交表单后,它会在网络选项卡中向我抛出错误)

将“Access Control Allow Origin”更改为“”>好的,看起来它还给了我想要的JSON。400错误请求的错误消失,显示:

 HTTP/1.1 200 OK
 Content-Type: application/json+protobuf; charset=UTF-8
 Vary: Origin
 Vary: X-Origin
 Vary: Referer

{"3":{"1":3},"4":"{\"body\":\"{\\\"items\\\":[{\\\"cards\\\":[ the content I want. 
但是电子邮件本身不会加载任何内容?要明确的是,错误永远不会出现在电子邮件中。就在Chrome的“网络”选项卡中

编辑: 在gmail中提交表单后,控制台将显示以下错误:

[amp-form] Form submission failed: Error: Request viewerRenderTemplate failed
Server side html response must be defined
Uncaught (in promise) Error: Server side html response must be defined​​​

我想我已经修好了,我所做的:

  • 将origin设置为“*”,这样它就可以在游乐场和gmail中工作

    res.set('Access-Control-Allow-Origin', '*');
    
  • Gmail不接受svg图像,但它可以在操场上使用

  • Gmail不接受图像url中的任何空格,因此您必须使用%20
  • “必须定义服务器端html响应”错误很可能与CORS无关。您是否可以发布完整代码,或者通过以下过程在Gmail中提交bug: