CORS \ NO-CORS запросы (Invalid Token 401)

Avatar
  • обновлен
  • Не ошибка

Добрый день, пытаюсь добавить ваш api в проект. Я использую fetch \ ajax запросы, добавляю в header token, но от вас прилетает ответ что invalid token 401 (OPTIONS), запрос POST

Request URL:

https://apirosreestr.ru/api/cadaster/search

Request Method:

OPTIONS

Status Code:200

Remote Address:

178.210.75.221:443

Referrer Policy:

no-referrer-when-downgrade

Response Headers

access-control-allow-origin:*

content-length:76

content-type:

application/json

date:Wed, 12 Apr 2017 12:27:02 GMT

server:nginx/1.11.8

status:200

x-powered-by:

PHP/5.6.16


Request Headers

:authority:apirosreestr.ru

:method:OPTIONS

:path:/api/cadaster/search

:scheme:https

accept:*/*

accept-encoding:gzip, deflate, sdch, br

accept-language:ru-RU,ru;q=0.8,en-US;q=0.6,en;q=0.4

access-control-request-headers:access-control-allow-origin,token

access-control-request-method:POST

origin:http://localhost:8080

referer:http://localhost:8080/

user-agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/57.0.2987.133 Safari/537.36

Прикрепленные ответы
Avatar
Специалист Техподдержки
  • Ответ

Политика безопасности браузеров запрещает выполнение кроссдоменных AJAX запросов. Это связано с тем, что при передачи через браузер возможен перехват токена и других данных.

Avatar
Цитата от Специалист Техподдержки

Политика безопасности браузеров запрещает выполнение кроссдоменных AJAX запросов. Это связано с тем, что при передачи через браузер возможен перехват токена и других данных.

Обходится это следующим образом, вы делаете запрос к серверному скрипту, расположенному на вашем сайте, который перенаправляет запрос на (наш или нужный вам) сайт

Avatar
Специалист Техподдержки
  • Ответ

Политика безопасности браузеров запрещает выполнение кроссдоменных AJAX запросов. Это связано с тем, что при передачи через браузер возможен перехват токена и других данных.

Avatar
AtixD

Вот ответ на ваш пример (Скопировал и вставил). XMLHttpRequest cannot load https://apirosreestr.ru/api/cadaster/search. Request header field token is not allowed by Access-Control-Allow-Headers in preflight response. Возвращает мне header options, использую webpack.

Avatar
-1
Специалист Техподдержки
  • Не ошибка

Вы делайте неверный запрос!

1. у вас метод OPTIONS а должен быть POST
2. у вас не передается параметр query.
3. в вашем запросе не передается (Token - как HTTP заголовок "то есть как HEADER параметр")

вот пример Curl запроса (где вместо AAAA-BBBB-CCCC-DDDD вы должны поставить ваш токен который получили в личном кабинете)
--------------------------------
curl -X POST
-H "Token: AAAA-BBBB-CCCC-DDDD"
-H "Content-Type: application/x-www-form-urlencoded"
-d 'query=46:29:101001:10' "https://apirosreestr.ru/api/cadaster/search"


вот еще пример Ajax запроса
------------------------------------
$.ajax({
"async": true,
"crossDomain": true,
"url": "https://apirosreestr.ru/api/cadaster/search",
"method": "POST",
"headers": {
"token": "AAAA-BBBB-CCCC-DDDD",
"content-type": "application/x-www-form-urlencoded"
},
"data": {
"query": "46:29:101001:10"
}
}).done(function (response) {
console.log(response);
});

P.S. вот еще ссылка на описание API - https://apirosreestr.ru/api/