【发布时间】:2017-02-26 05:43:25
【问题描述】:
我正在尝试使用我的 Angular 服务中的以下代码将 POST 请求从我的 Angular2 (http://localhost:3000) 应用程序发送到 Rails API url (POST http://localhost:3003/api/users)。
createNewUser(){
//var params = JSON.stringify({ user:{ first_name: 'Nifras', last_name: 'Ismail', email: 'nifrasismail@gmail.com', contact_number: '+94778990300', user_name: 'nifrasismail', password: 'sdkjnfnsdj'}});
var params = JSON.stringify({
"first_name":"Nifras"
});
var headers = new Headers();
headers.append('Content-Type','application/json');
return this.http.post('http://localhost:3003/api/users',params, {headers : headers})
.map(res => res.json());
}
当我通过 Angular 2 应用程序将此请求发送到我的 api 时,我在浏览器控制台上收到以下错误。
跨域请求被阻止:同源策略不允许读取 http://localhost:3003/api/users 的远程资源。 (原因:CORS 缺少标头“Access-Control-Allow-Origin”)。
我需要做哪些工作来解决这个问题? GET 方法也会出现同样的问题,但在 rails app/controllers/application_controller.rb 上添加以下标题可以解决此问题。但是,我无法克服 POST 请求的问题
after_filter :set_access_control_headers
def set_access_control_headers
headers['Access-Control-Allow-Origin'] = '*'
headers['Access-Control-Request-Method'] = '*'
end
【问题讨论】:
标签: ruby-on-rails angular