Я пытаюсь сделать запрос к API. Он отлично работает в почтальоне, но не из браузера напрямую. Я не могу найти разницы между 2, кроме https://developer.chrome.com/extensions/xhr. Но я не понимаю, почему это было проблемой, потому что для Access-Control-Allow-Origin установлено значение *.Ошибка Access-Control-Allow-Origin, но сервер установлен на *
Почтальон Просмотр:
GET /facebook/v1/api/v2.2/123585981029762/insights/page_impressions?period=day HTTP/1.1
Host: api.url.com
Authorization: Basic {BASIC AUTH HASH}
X-KO-ACCOUNT: 123585981029762
Cache-Control: no-cache
Почтальон Response Headers:
Access-Control-Allow-Origin → *
Cache-Control → private, no-cache, no-store, must-revalidate
Connection → keep-alive
Content-Length → 1000
Content-Type → application/json; charset=UTF-8
Date → Tue, 17 Mar 2015 21:51:17 GMT
ETag → "32a4e4fc7aeb25536a634c302505fb02e7efe9fb"
Expires → Sat, 01 Jan 2000 00:00:00 GMT
Facebook-API-Version → v2.2
Pragma → no-cache
X-FB-Debug → Y0OdHMjYO5KUIqcnnVNK4eWLZRiPSKUnsOAHZ3sf33qjVSanI2AoK/jpY9OhZUffGfX31Wo6IgUWMoXkZHZRKQ==
X-FB-Rev → 1645171
Javascript из браузера:
xmlhttp= new XMLHttpRequest(); xmlhttp.open("GET","https://api.url.com/facebook/v1/api/v2.2/123585981029762/insights/page_impressions?period=day",true);
xmlhttp.setRequestHeader("authorization",'Basic {BASIC AUTH HASH}');
xmlhttp.setRequestHeader("X-KO-ACCOUNT",'12358376954762');
xmlhttp.send();
Сообщение об ошибке (в Chrome):
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access. The response had HTTP status code 401.
Кроме того, Chrome показывает метод OPTIONS вместо GET. (Я знаю, что это нормально с ошибкой кросс-браузера). Но IP-адрес удаленного адреса отличается.
ЛЮБАЯ помощь была бы принята с благодарностью!
Спасибо, я сделаю снимок. Очевидно, что домены постоянно разговаривают с другими доменами, поэтому как мне разрешить доступ к Access-control-allow-origin? –
Некоторые API включают белый список URI, который позволяет запрашивать именно эти домены. В зависимости от ситуации вы также можете проверить «jsonp», внедрить другой сайт или использовать релаксацию домена. Однако вы можете проверить, можете ли вы разместить бэкэнд на одном и том же происхождении. –