我正在部署Mean-Stack项目,在部署时,收到CORS策略错误,说...
CORS策略阻止了从源http://localhost:4200在http://XXX.XXX.X.XX:4000/user/postUserAuth处访问XMLHttpRequest:对预飞行请求的响应无法通过权限改造检查:当请求的凭据模式为“包含”时,响应中的访问控制允许源标头的值不能是通配符“*”。由XMLHttpRequest发起的请求的凭据模式由with凭据属性控制
我们怎样才能允许所有的请求到达Express服务器并解决这个问题?
服务器我们使用的角度是精简服务器。
// Used this in Express
app.use(cors((
{
'origin':'*',
'credentials':true,
'preflightContinue':true,
'optionSuccessStatus':204
}
)));
//Server is logging this
"OPTIONS /user/postUserAuth HTTP/1.1" 200 4 "http://localhost:4200/login
//Angular service class
export class LogincontrollerService {
private address = APIEndpoint;
_LoginURL=this.address+"/user/postUserAuth";
constructor(private _http: HttpClient) { }
// function to for sending request to server with data.
getLogin(data){
return this._http.post<any>(this._LoginURL,data,{
withCredentials:true
});
}
}
方法1:在< code>cors选项中指定url,而不是< code>*:
const corsOptions = {
origin: 'http://localhost:4200',
credentials: true,
preflightContinue:true,
optionSuccessStatus:204
}
app.use(cors(corsOptions));
注意:这是安全性的一部分。如果您希望允许凭据,则您的访问控制允许来源不能使用< code>*。您必须指定确切的协议域端口*
方法2:使用以下middileware解决CORS(如果您不想允许凭据):
app.use(function (req, res, next) {
// website you wish to allow to connet
res.setHeader('Access-Control-Allow-Origin','http://localhost:4200/');
// request method you wish to allow
res.setHeader('Access-Control-Allow-Methods','GET, POST, OPTION, PUT, PATCH, DELETE');
// request headers you wish to allow
res.setHeader('Access-Control-Allow-Headers','X-Requested-With,content-type,Authorization');
// set to true if you need the website to include cookies in the request sent
// to the API (eg. in case you can see sessions )
res.setHeader('Access-Control-Allow-Credentials','false');
// pass to the next layer of middleware
next();
});
我正试图从vue.js端访问laravel服务器。但它表明 CORS策略阻止从来源“http://localhost:8000/api/registerdoctor”访问位于“http://localhost:8080”的XMLHttpRequest:请求的资源上没有“Access-Control-Allow-Origin”标头。 怎么办?
我有一个maven项目,我正在Intellij IDEA中导入它。除了部署maven项目控制台时显示以下错误外,一切都很好 [ERROR]未能执行goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy(default-deploy)on project multisite:Deployment Failed:在distributio
当我向我的api发出请求时,chrome会阻止我的请求,原因是内核。在我的firebase云函数上,我添加了response.set('access-control-allow-origin','*');(axios get中的xxxxxx只是隐藏请求url) 然后在我的angular应用程序中,我发出一个http post请求,如下所示 url与请求来自的域不同。 当我测试《邮差》里的一切,一切
问题内容: 我在package.json中添加了proxy,效果很好,但是在npm run build之后,CORS问题再次浮出水面,有人知道在React中npm run build之后如何处理CORS问题。 我试图使用各种方法在axios请求中添加标头。但是,我未能在axios请求中添加’Access-Control-Allow- Origin’:’*’。我的代码如下: package.json
问题内容: 我正在从客户端向Google oauth 2 API 进行ajax调用以获取访问令牌,但出现以下错误: 对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问来源“ http://blah-blah.com ” 我希望该调用为ajax,以便通过或换句话说,在进行调用时不会打扰用户,我如何获得访问令牌以
首先,我为我的英语水平不太好而道歉。我正在实习,我的任务是继续为公司开发一个内联网网站。我在实习开始时就拿到了代码,并开发了本地版本,具有本地网络服务器和本地数据库。这是我在公司服务器上部署更改版本的时候了,一旦我这样做了,到目前为止一直使用旧版本的站点会显示“ 内部服务器错误 500”。它来自什么,有人有解决方案吗?PS :该网站是用CakePhp开发的。