No' Access-Control-Allow-Origin"?

时间:2018-05-08 08:28:54

标签: reactjs api http react-native react-redux

我在React中使用了来自api的数据 但是我收到了这个错误:

  

无法加载   https://xxxx/api/yyyy?results=1000:回复   预检请求没有通过访问控制检查:否   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:8000'因此是不允许的   访问。

我在Chrome中启用了跨源资源共享,但我面临同样的错误

这是路线

Route::group(['middleware'=>'cors:api'],function(){
Route::get('/xxxx','yyyyController@yyyFunction');
});

这是cors中间件

public function handle($request, Closure $next)
   {
       return $next($request)
       ->header('Access-Control-Allow-Origin', '*')
       ->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS')

       ->header('Access-Control-Allow-Headers', 'Content-Type, Content-Range, Content-Disposition, Content-Description')
       ->header('Connection', 'close')
       ->header('Cache-Control', 'max-age=2592000')
       //->header('Transfer-Encoding', 'chunked')

       ;
   }

2 个答案:

答案 0 :(得分:1)

如果您从浏览器调用API但此端点尚未定义CORS,则浏览器将阻止请求并显示错误,如您的问题。您可以参考此文档以了解有关CORS

的更多信息

答案 1 :(得分:1)

试试这对我有用。

*** reactjs使用axios

const data = { 'id': 'xx', 'article': 'dd' };
const url = 'http://localhost:8080/path'
const options = {
  method: 'POST',
  data: qs.stringify(data),
  url,
};
axios(options)
  .then(function (response) {
    console.log(response);
  }).catch(function (error) {
    console.log(error);
  });

希望获得帮助。