Без добавления кода перекрестного происхождения на стороне обслуживания, как решить проблему перекрестного происхождения? - PullRequest
0 голосов
/ 04 июля 2019

Без добавления кода перекрестного происхождения на языке сервисной стороны. можно решить проблему перекрестного источника угловых 7 с Java API или Laravel (PHP).

Без добавления кода ниже.

Для Java:

public class CORSFilter extends OncePerRequestFilter {
    private static final Log LOG = LogFactory.getLog(CORSFilter.class);

    @Override
    protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {

        response.addHeader("Access-Control-Allow-Origin", "*");
        if (request.getHeader("Access-Control-Request-Method") != null && "OPTIONS".equals(request.getMethod())) {
            LOG.trace("Sending Header....");
            // CORS "pre-flight" request
            response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
            // response.addHeader("Access-Control-Allow-Headers", "Authorization");
            response.addHeader("Access-Control-Allow-Headers", "Content-Type");
            response.addHeader("Access-Control-Max-Age", "1");
        }
        filterChain.doFilter(request, response);
    }

}

Для Laravel:

namespace App\Http\Middleware;

use Closure;
class Cors
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        return $next($request)
            ->header('Access-Control-Allow-Origin', '*')
            ->header('Access-Control-Allow-Methods', 'GET, POST, PATCH, PUT, DELETE');
    }
}

1 Ответ

1 голос
/ 04 июля 2019

Из документации CORS

Веб-приложение выполняет HTTP-запрос с несколькими источниками, когда оно запрашивает ресурс, источник которого (домен, протокол и порт) отличается от своего собственного источника.

Итак, если вы действительно не хотите устанавливать заголовки CORS на своем API-сервере, вам необходимо убедиться, что API-сервер имеет тот же протокол, хост и домен, что и ваш угловой веб-сайт.

В противном случае, если это только для целей разработки / тестирования, вы можете попробовать использовать прокси-сервер angular

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...