Да, я понял это. Так как же я могу удалить этот ответ, @Heady?

отаю с приложением Angular 2 & Ionic 2. Мне пришлось перейти на другой сервер для тестирования, и API перестал работать с сообщением об ошибке ниже:

Ответ на предпечатную проверку имеет недопустимый код состояния HTTP 403

Я добавил это в .htaccess

<IfModule mod_headers.c>
    Header append Vary User-Agent env=!dont-vary
    Header add Access-Control-Allow-Origin "*"
    Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
    Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"
&l,t;/IfModule>

Это на моем угловом провайдере:

  loginUser(data): Observable<any> {
    let username: string = data.username;
    let password: string = data.password;
    let headers: Headers = new Headers();
    let url = this.domain + "/wp-json/wp/v2/users/me?context=edit";
    let bt = btoa(username + ":" + password);

    this.storage.save('bt', {'bt':bt});
    headers.append("Authorization", "Basic " + bt);
    headers.append('Access-Control-Allow-Headers', 'Content-Type');
    headers.append("Content-type", "application/x-www-form-urlencoded");
    headers.append('Access-Control-Allow-Origin', '*');

    return this.http.get(url, {headers: headers}).map(res => res.json())
  }

Кроме того, включен плагин Chrome у меня для CORS проблем, который включен и работает в других случаях, когда я нахожусь на проектах localhost.

Я перепробовал все, что нашел, и я не уверен, что еще я мог сделать.

Если проверить вкладку «Сеть» в консоли Chrome Dev, ответ будет таким:

<HTML>
<HEAD>
<TITLE>403 Forbidden</TITLE>
</HEAD>
<BODY>
<H1>Forbidden</H1>
You do not have permission to access this document.
<P>
<HR>
<ADDRESS>
Web Server at my domain here
</ADDRESS>
</BODY>
</HTML>

Исходя из ответов, это мои правила переписывания, а также:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ $1 [R=200,L]
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Ответы на вопрос(0)

Ваш ответ на вопрос