CORS策略阻止了从来源'http://localhost:3000'获取'My InvokeURL'的访问:在飞行前响应中,Access-Control-Allow-Headers不允许请求头字段content-type。
我的目标是将POST请求取到API网关。我在网关控制台的选项响应中添加了Access-Control-Allow-Headers标头,其值为'Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-AMZ-Security-Token',但实际响应中根本没有这个字段。
响应标头:
access-control-allow-methods: POST,OPTIONS
access-control-allow-origin: *
content-length: 36
content-type: application/json
date: Mon, 28 Oct 2019 21:13:22 GMT
status: 200
module.exports.sendM = function (event, context, callback) {
console.log(event);
var body =`<p>Olá, ${event.name}!</p><p>Esse é o resumo do seu pedido: </p>`;
let minion1 = event.minion;
let minion2 = event.minion2;
let minion3 = event.minion3;
if (event.minion1){
body += `<p> Au Naturel: ${event.minion1}</p>`;
}
if (event.minion2){
body += `<p> Phil: ${event.minion2}</p>`;
}
if (event.minion3){
body += `<p> Bored Silly Kevin: ${event.minion3}</p>`;
}
body += `<p> Enviar para ${event.address}</p>`;
var mailOptions = {
from: 'leosole@gmail.com',
subject: 'Pedido minionshop',
html: body,
to: `${event.mail}`
// bcc: Any BCC address you want here in an array,
};
// create Nodemailer SES transporter
var transporter = nodemailer.createTransport({
SES: ses
});
const response = {
statusCode: 200,
headers: {
"Access-Control-Allow-Origin": "*", // Required for CORS support to work
"Access-Control-Allow-Credentials": true, // Required for cookies, authorization headers with HTTPS
"Access-Control-Allow-Headers": "Origin,Content-Type,X-Amz-Date,Authorization,X-Api-Key,X-Amz-Security-Token",
"Access-Control-Allow-Methods": "POST, OPTIONS"
},
body: JSON.stringify(event)
};
// send email
console.log(event.mail);
transporter.sendMail(mailOptions, function (err, info) {
if (err) {
console.log("Error sending email");
callback(err);
} else {
console.log("Email sent successfully");
callback(null, response);
}
});};
handleSubmit = event => {
event.preventDefault();
console.log('trying to fetch')
fetch('myInvokeUrl', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
// 'Access-Control-Allow-Origin': '*'
},
body: JSON.stringify({
name: this.state.name,
mail: this.state.mail,
address: this.state.address,
minion1: this.state.minion1,
minion2: this.state.minion2,
minion3: this.state.minion3
})
})
.then(function(response) {
return response.json()
}).then(function(json) {
console.log('parsed json', json)
}).catch(function(ex) {
console.log('parsing failed', ex)
})}
我的集成响应
导航到您的方法响应post方法(而不是选项),并检查是否有以下配置:
然后导航到您的Integration Response post方法(而不是选项),并检查是否有以下配置:
先在没有发送电子邮件功能的情况下尝试,只在发送电子邮件之前回调(null,{response});
;
问题内容: 我正在尝试从跨域制作登录页面,但无法解决问题,错误是: XMLHttpRequest无法加载http://localhost/testing/resp.php。在飞行前响应中,Access- Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Headers。 我的Javascript代码是: http://localhost/test
完整错误消息: CORS策略阻止从来源“http://localhost:3000”访问位于“https://api_url”的XMLHttpRequest:飞行前响应中的access-control-allog-headers不允许请求头字段x-requested-with。
此外,客户机url http://localhost:8081被添加到KeeyCloak中的Web Origins中。不确定还缺少什么来让它工作。
问题内容: 我正在尝试使用发布请求将文件发送到服务器,但是在发送请求时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了错误并添加了标题: 然后我得到错误: Access-Control-Allow-Headers不允许请求标头字段Access-Control-Allow-Origin 所以我用谷歌搜索,唯一能找到的类似
我正在尝试将文件发送到我的服务器,并发送post请求,但当它发送时会导致错误: Access-Control-Allow-Headers不允许请求标头字段Content-Type。 所以我搜索了这个错误并添加了标题: 然后我得到错误: