Обратите внимание, что это не решает процесс обмена файлами cookie, так как в целом это плохая практика.
Вы должны использовать JSONP в качестве своего типа:
From $. ajax: запросы на междоменные и dataType: запросы «jsonp» не поддерживают синхронную работу.
$.ajax(
{
type: "POST",
url: "http://example.com/api/getlist.json",
dataType: 'jsonp',
xhrFields: {
withCredentials: true
},
crossDomain: true,
beforeSend: function(xhr) {
xhr.setRequestHeader("Cookie", "session=xxxyyyzzz");
},
success: function(){
alert('success');
},
error: function (xhr) {
alert(xhr.responseText);
}
}
);
От представления или редактора (эта часть легка):
this.getSite().getWorkbenchWindow().getShell()
Откуда-либо, получите доступ к представлению или редактору и тому же как выше.
при нахождении в классе, где у Вас нет доступа к представлению или редактору, Вы, вероятно, не хотите называть любой код UI, но если Вы действительно хотите выстрелить себе в ногу:
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell()
Часть кода из предыдущего ответа будет работать. Однако имейте в виду, что можно только открыть диалоговое окно от потока UI. При открытии диалогового окна от другого потока, например, фонового процесса необходимо сделать что-то вроде этого:
PlatformUI.getWorkbench().getDisplay().asyncExec(new Runnable() {
public void run() {
Shell activeShell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell();
}
});
Иначе Вы получите исключение при создании диалогового окна.
Не совсем точно, что Вы хотите сделать, но Вы, возможно, должны использовать SWT.APPLICATION_MODAL, SWT.DIALOG_TRIM и т.д. при создании диалогового окна для создания этого модальным диалоговым окном (но возможно это не то, чем вопрос был о).
Посмотрите этот ссылка для большего количества информации