Я использую Java-Джерси и Jetty на моей стороне сервера и имеют следующий фрагмент кода:Разрешение Access-Control-Allow-Origin из любой точки мира (Java и ember.js)
responseBuilder.header("Access-Control-Allow-Origin", "http://localhost:4200");
responseBuilder.header("Access-Control-Allow-Headers", "origin, content-type, accept, authorization, auth-token");
responseBuilder.header("Access-Control-Allow-Credentials", "true");
responseBuilder.header("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT");
responseBuilder.allow("OPTIONS");
и я м с помощью ember.js на клиентской стороне и имеют следующий код:
/app/adapters/application.js:
import DS from 'ember-data';
export default DS.RESTAdapter.extend({
host: 'http://127.0.0.1:20000',
ajax(url, method, hash) {
hash = hash || {};
hash.crossDomain = true;
hash.xhrFields = {
withCredentials: true
};
return this._super(url, method, hash);
}
});
сочетание кода работает, что он посылает COOKIE как часть запрос и разрешает Access- Control-Allow-Origin.
Однако я обеспокоен тем, что «http://localhost:4200» жестко закодирован. Хотя это не проблема до развертывания, я полагаю, это ограничивает трафик только с http://localhost:4200? Это веб-приложение и , очевидно, мне нужно разрешить доступ от любого клиента, прибывающего из любого места. Какие изменения необходимо внести в мой код?
При использовании подстановочного знака вы не можете использовать учетные данные tho. – Lux
Я положил «*» и действительно выбросил ошибку. Я должен отправить JWT в качестве файла cookie на сервер, поэтому я не могу использовать подстановочный знак. – ikevin8me
@ykaragol, как вы сказали, «Access-Control-Allow-Origin указывает сервер вашего клиентского приложения» ... Я с облегчением слышу это. Да, мое серверное приложение будет работать по определенному происхождению. Поэтому, основываясь на том, что вы сказали, у меня не будет никаких проблем, верно? – ikevin8me