2014-02-17 2 views
-1

Мы приобрели лицензию, и сегодня мы работаем над реализацией плагина Fine Uploader на Salesforce и достигли технической проблемы с запросом AJAX, который должен быть выполнен из javascript в Salesforce.Поддержка Fine-Uploader Salesforce

Вот шаги, которые мы сделали Ф.О. далеко: Мы создали тест Visualforce страницы https://c.XX.visual.force.com/apex/s3_fine_uploader Мы должны обеспечить мелкий пользователь конечной точки, которая будет вызываться с помощью тонкого кода загрузчика как запрос HTTP Salesforce позволяет нам написать REST API для обработки запросов POST, мы создали для этого класс apex 'S3_Fine_Uploader_Service'. Конечная точка SFDC является http://XX.salesforce.com/services/apexrest/S3_Fine_Uploader_Service Поскольку домены различны, мы не можем сделать эту интеграцию без трюка или обходного пути

Нашего видения заключается в том, что у нас есть два варианта, оба зависят от тонкого кода загрузчика и требуют изменений на JavaScript код. Оба варианта будут работать для нас. a) Попросите команду Fine Uploader, чтобы мы могли выбрать способ запроса. Это позволит нам изменить его на «GET», а затем мы будем обрабатывать запрос как visualforce page + controller. b) Попросите команду Fine Uploader заменить запрос конечной точки обработкой JavaScript-кода обратным вызовом.

Эта проблема специфична для Salesforce, потому что мы не контролируем имена доменов visualforce и API-сервисов.

+0

Боюсь, я вообще не понимаю ваш вопрос. Какая конкретная проблема у вас есть? –

+0

Извините за мое первое сообщение. Мы используем salesforce.com в качестве серверной части, и мы хотим использовать Fine-uploader для загрузки файлов на Amazon S3. Для этого мы создаем класс APEX для обработки запросов POST Ajax с точной загрузкой. Но visualforce page и apex restapi класс размещаются на разных доменах, и когда мы пытаемся подписать данные о загрузке, мы сталкиваемся с ошибкой CORS. Мы также приобрели лицензию с прекрасным заказом с помощью билетов на поддержку, но мы не знаем, как использовать эту функцию на вашем сайте. Как мы можем связаться с вашей службой поддержки, чтобы решить нашу проблему? –

ответ

0

Если ваш сервер подписи находится в другом домене, а не на странице, на которой размещена ваша страница загрузчика, вы должны установить cors.expected вариант true. Вашему серверу также необходимо будет правильно реализовать спецификацию CORS. Fine Uploader полностью поддерживает CORS, но ваш сервер должен задержать свой конец контракта.

Ваш сервер должен будет обрабатывать запрос OPTIONS (предполетный), который будет отправлен браузером для каждого запроса подписи с кросс-началом, а также базовый POST для перекрестного происхождения.

К счастью, его довольно просто реализовать на стороне сервера CORS. Мы даже создали an S3 signature endpoint handler in PHP that demonstrates this.

+0

Да. Мы настроили параметр CORS с прекрасным загрузчиком на true. Но в настоящее время salesforce restapi не поддерживает запросы CORS и OPTIONS (только GET, POST, PUT, DELETE). И мы попросим команду тонкого пользователя загрузить следующие случаи для нас: a) Позвольте нам выбрать метод запроса. Это позволит нам изменить его на «GET», а затем мы будем обрабатывать запрос как visualforce page + controller. b) Замените запрос конечной точки на выполнение JavaScript-кода обратного вызова. Мы можем это сделать? –

+0

В настоящее время также не поддерживаются. Второй вариант, вероятно, никогда не будет поддерживаться, но мы можем разрешить запрос подписи быть GET. Однако в любом случае, если Salesforce не поддерживает CORS, изменение метода запроса не решит эту проблему для вас. –

+0

Если мы изменим POST на GET, мы сможем обрабатывать эти запросы без CORS, поскольку конечная точка будет в тех же доменах, что и страница загрузки. –

Смежные вопросы