Я гуглил и нашел несколько интересных вариантов решения этой проблемы. Среди них twelvemokeys , который позволяет расширить возможности ImageIO в Java, я попробовал его, и он работает, как и ожидалось, без необходимости изменять код (поскольку, как я упоминал ранее, он позволяет ImageIO расширять свои возможности). Наконец, они проделали большую работу по модульности расширений в различных форматах изображений.
Maven
com.twelvemonkeys.imageio
imageio-psd
3.4.1
Java
Тот же код с путем изображения PSB.
BufferedImage nasaImage = ImageIO.read(new File(path));
Запомните проблему размера изображений, проверьте рекомендацию twelvemonkeys .
В Dashcode щелкните Атрибуты виджета , затем Разрешить доступ к сети , убедитесь, что этот параметр отмечен. Я построил то, что просто отказывалось работать, и это было решением.
Междоменные запросы Ajax (Используя XMLHttpRequest / объект ActiveX) не позволяются в текущем стандарте согласно спецификации W3C:
Эта спецификация не включает следующие функции, которые рассматривают для будущей версии этой спецификации:
- Перекрестный сайт XMLHttpRequest;
Однако существует 1 метод выполнения ajax междоменные запросы, JSONP, включением тега script на странице, и с небольшой конфигурацией сервера.
jQuery поддерживает это, но вместо того, чтобы ответить на Вашем сервере этим
{"message":"Hello World","version":"1.0"}
Вы захотите ответить этим:
myCallback({"message":"Hello World","version":"1.0"});
myCallback должен быть значением в параметре "обратного вызова", который Вы передали в $ .getJSON () функция. Таким образом, если бы я использовал PHP, то это работало бы:
echo $_GET["callback"].'({"message":"Hello World","version":"1.0"});';
Если Вы создаете виджет панели инструментов, почему Вы не используете функцию Установки XMLHttpRequest в библиотеке кода DashCode. Apple создала их в том, таким образом, Вы не должны устанавливать сторонние библиотеки JS. Я не уверен в поддержке JSON, но возможно запускающийся здесь приведет Вас в лучшем направлении.
Интересный, что это работает в Safari. Насколько я знаю, чтобы сделать, x-домен ajax запрашивает использовать jsonp тип данных.
http://docs.jquery.com/Ajax/jQuery.getJSON
http://bob.pythonmac.org/archives/2005/12/05/remote-json-jsonp/
В основном необходимо добавить callback=?
к Вашей строке запроса и jQuery автоматически заменит его корректным методом, например:
$.getJSON("http://example.com/getData.php?act=data&callback=?",function(){ ... });
Править: поместите callback=?
бит в конце строки запроса только для сейфа.
Apple имеет какой-то внешний блок URL-адресов.
В вашем Info.plist необходимо, чтобы ключ AllowNetworkAccess был установлен в значение true.
<key>allowNetworkAccess</key>
<true/>
Ваш код работает в Safari, поскольку он не ограничен в сервере панелей мониторинга и не соответствует стандартам в том смысле, что он допускает межсайтовый AJAX. Стандарты FF IS совместимы, так как не допускают межсайтовый AJAX.