我在端口8002上运行了一个NodeJS/Express后端API服务器,在端口3000上运行了一个ReactJS前端应用程序。
我从reactJS前端应用程序提交了一个表单,以发布在API服务器上,该服务器将它保存到数据库中。
我调用一个函数saveAndContinue来提交表单。
下面是这样做的片段:
class Confirmation extends Component{
saveAndContinue = (e) => {
e.preventDefault();
console.log("props : " + JSON.stringify(this.props.values));
var form_id = Math.floor(Math.random() * 1000000);
let headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Accept', 'application/json');
headers.append('Access-Control-Allow-Origin', '*');
fetch("http://localhost:8002/sharepoint/big_data_poc/" + form_id,{
method:'POST',
//mode: 'cors',
body:JSON.stringify(this.props.values),
headers: headers
}).then(res => res.json()).then(this.setState({confirmation_id:form_id}))
.then(response => console.log('Success:', JSON.stringify(response)))
.catch(error => console.error('Error:', error));
this.props.nextStep();
}
另外,我在nodeJShtml" target="_blank">服务器响应头中添加了access-control-allog-orgin
cb_service.prototype.addForm = function(req,res,form_id, doc_type,payload){
logger.info(JSON.stringify(payload));
bucket.upsert(form_id,payload,function(err,result){
if(err){
logger.error("error inserting data in couchbase")
}
else {
res.setHeader('Access-Control-Allow-Origin','*')
res.setHeader('Access-Control-Allow-Methods','POST, GET, OPTIONS, PUT')
res.setHeader('mode','cors')
logger.info("successful inserts");
res.status(200);
return res.json({"success":"ok"});
}
})
}
我根本没有看到任何请求进入服务器。我只是在浏览器控制台中看到以下错误:
未能加载http://localhost:8002/sharepoint/big_data_poc/944960:对飞行前请求的响应未通过访问控制检查:请求的资源上没有“access-control-allog-origin”标头。因此,不允许访问源'http://localhost:3000'。如果一个不透明的响应满足您的需要,请将请求的模式设置为“no-cors”,以便在禁用CORS的情况下获取资源。
任何帮助都是非常感谢的!!我想我已经做了SO上类似问题推荐的所有事情。甚至Safari也会抛出以下错误:
[错误]未能加载资源:来源http://localhost:3000不被Access-Control-Allog-Origin允许。(408661,第0行)
[错误]获取API无法加载http://localhost:8002/sharepoint/big_data_poc/408661.Access-Control-Allog-Origin不允许Origin http://localhost:3000。
太感谢了!
安装cors
就不会有任何问题const cors=require('cors');app.use(cors());npm https://www.npmjs.com/package/cors上的
链接
我正在尝试获取一个新闻网站的提要。我想我应该使用Google的feed API将feedburner提要转换为JSON。下面的url将以json格式从提要返回10个帖子。http://ajax.googleapis.com/ajax/services/feed/load?v=1.0&num=10&q=http://feeds.feedburner.com/Mathrubhumi 我使用下面的代码来
问题内容: 我想访问来自同一域但端口号不同的信息,为此,我添加了响应头。 Servlet代码:( 显示在www.example.com:PORT_NUMBER上) jQuery代码:( 显示在www.example.com上) 几次我收到此错误(在控制台中): 该错误通常在执行时首次发生。第二次允许。 我的问题是代码中或代码中缺少什么? 任何建议将不胜感激。 更新1 我变了: 至: 然后我在控制台
我在前端使用Angular,在后端使用Java Spring,但是我得到了错误:,而我确信CORS是启用的。这是我的配置文件: 它工作了,我可以毫无问题地完成所有其他请求,但服务中的这个PUT请求给了我一个错误: 这是我的服务器端:
问题 我设法从我的应用程序进入keycloak登录页面。使用“我的登录详细信息”登录后,出现错误: -localhost/:1 CORS策略阻止了从源“http://localhost:4200”访问“https://localhost:8080/auth/realms/pwe-realm/protocol/openid-connect/token”的XMLHttpRequest:请求的资源上没有
问题内容: 到目前为止,我想出了下面的代码,它是读取xml的非常基本的代码,但是出现以下错误。 XMLHttpRequest无法加载****。所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源’ http://run.jsbin.com ‘。 我没有发现我的代码有什么问题,所以我希望有人可以指出我的代码有什么问题以及如何解决。 问题答案: 由于
问题内容: 我需要通过JavaScript 将数据发送到Python服务器。因为我使用的是localhost,所以我需要使用CORS。我正在使用Flask框架及其模块。 作为JavaScript,我有这个: 和Python代码: 但是当我执行它时,我收到以下消息: 我该如何解决?我知道我需要使用一些“ Access-Control-Allow-Origin”标头,但我不知道如何在此代码中实现它。顺