我正在使用Angular 2来提出API(rails)请求。当我通过角度发出http请求时,出现以下错误: XMLHttpRequest无法加载https://api-url。对预检请求的响应不会通过访问控制检查:请求的资源上不存在“访问控制 - 允许来源”标头。因此不允许访问原产地'http://localhost:4200'。该响应的HTTP状态码为404. 但是,如果我尝试通过邮递员或浏览器本身发出请求,则不会收到任何错误。的数据被显示正常 角代码:错误的访问控制 - 允许来源当角度请求导轨
makeRequest() {
let user = {"user": "user", "password": "password"};
let headers: Headers = new Headers();
headers.append('Authorization', 'Basic ' + btoa(user.user + ':'+user.password));
headers.append('Content-Type', 'application/vn.api+json')
let this.http.get(api-url, {headers: headers}).map(res => res.json()).subscribe(data => {
this.data = data;
})
}
以我导轨服务器I使用宝石“jsonapi-resources'to开放AP。在我的API控制器,我有这样的代码来验证和设置头的请求:当我在浏览器或使用postaman做出请求
module Api
class ApiController < JSONAPI::ResourceController
prepend_before_action :set_headers, :authenticate
def context
{ current_station: @user }
end
private
def authenticate
authenticate_or_request_with_http_basic do |token, _|
@user = User.where(api_key: token).first
end
end
def set_headers
response.headers["Access-Control-Allow-Origin"] = "*"
end
end
end
,头常出现,但在角我有错误。