【发布时间】:2018-06-28 05:04:47
【问题描述】:
我正在尝试对我的 API 进行 CORS 调用。
$.ajax({
url: baseURL + '?' + qString,
contentType: 'application/json',
success: function (response) {
cb(null, response.objects);
},
failure: function (err) {
failureHandler(err);
cb(err);
},
});
但我遇到了一个错误
Request header field X-XSRF-TOKEN is not allowed by Access-Control-Allow-Headers in preflight response.
我什至尝试通过在 app.js 中传递它来禁用 CRFS
'apostrophe-express': {
csrf: false,
},
但它什么也没做,有没有办法可以禁用此行为并进行 CORS API 调用。
【问题讨论】:
-
嗨 Priyansh,您访问的 URL 是在同一个站点上吗?我想知道我们是否在跨域 API 调用中强制使用此功能。如果是,那是我们需要修复的错误。但是,如果它是对同一个网站的调用,由于我们的 XSRF 中间件(以及我们为自定义路由创建例外的功能),您应该不会有问题。当然,如果您正在与其他人的网络服务器交谈,那么这些异常功能并没有多大用处......这就是为什么它可能是我们必须修复的错误。
-
baseURL here 不在同一个站点上,这意味着您可能会在 CORS 调用中强制使用此功能
-
@TomBoutell 这个 PR 修复了这个问题 github.com/apostrophecms/apostrophe/pull/1300
标签: javascript jquery cors apostrophe apostrophe-cms