Панель инструментов Междоменный Ajax с jQuery

Я гуглил и нашел несколько интересных вариантов решения этой проблемы. Среди них twelvemokeys , который позволяет расширить возможности ImageIO в Java, я попробовал его, и он работает, как и ожидалось, без необходимости изменять код (поскольку, как я упоминал ранее, он позволяет ImageIO расширять свои возможности). Наконец, они проделали большую работу по модульности расширений в различных форматах изображений.

Maven

 
    
    
        com.twelvemonkeys.imageio
        imageio-psd
        3.4.1
    

Java

Тот же код с путем изображения PSB.

BufferedImage nasaImage = ImageIO.read(new File(path));

Запомните проблему размера изображений, проверьте рекомендацию twelvemonkeys .

5
задан GloryFish 16 April 2009 в 18:37
поделиться

5 ответов

В Dashcode щелкните Атрибуты виджета , затем Разрешить доступ к сети , убедитесь, что этот параметр отмечен. Я построил то, что просто отказывалось работать, и это было решением.

7
ответ дан 18 December 2019 в 14:52
поделиться

Междоменные запросы 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"});';
4
ответ дан 18 December 2019 в 14:52
поделиться

Если Вы создаете виджет панели инструментов, почему Вы не используете функцию Установки XMLHttpRequest в библиотеке кода DashCode. Apple создала их в том, таким образом, Вы не должны устанавливать сторонние библиотеки JS. Я не уверен в поддержке JSON, но возможно запускающийся здесь приведет Вас в лучшем направлении.

0
ответ дан 18 December 2019 в 14:52
поделиться

Интересный, что это работает в 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=? бит в конце строки запроса только для сейфа.

-2
ответ дан 18 December 2019 в 14:52
поделиться

Apple имеет какой-то внешний блок URL-адресов.

В вашем Info.plist необходимо, чтобы ключ AllowNetworkAccess был установлен в значение true.

<key>allowNetworkAccess</key>
<true/>

Ваш код работает в Safari, поскольку он не ограничен в сервере панелей мониторинга и не соответствует стандартам в том смысле, что он допускает межсайтовый AJAX. Стандарты FF IS совместимы, так как не допускают межсайтовый AJAX.

4
ответ дан 18 December 2019 в 14:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: