не удается получить доступ к веб-сервису prestashop через getJSON

не удается получить доступ к веб-сервису prestashop через getJSON

16.12.2014 06:22:39 Просмотров 42 Источник

Я пытаюсь использовать webservice prestashop (1.6) для получения моего продукта с помощью функции jQuery getJSON (), но в браузере консоли я получаю следующую ошибку :

  XMLHttpRequest cannot load
 http://www.pourquoilavie.org/api/products/?ws_key=XXXXXkeyXXXXXXXXX&io_format=JSON.
 No 'Access-Control-Allow-Origin' header is present on the requested
 resource. Origin 'http://localhost' is therefore not allowed access.

Я попытался добавить "Header set Access-Control-Allow-Origin: *" в htaccess, но безуспешно.

Интересно, есть ли другой способ установить заголовок (кроме использования php с header('Access-Control-Allow-Origin: *'); )

У вопроса есть решение - Посмотреть?

Ответы - не удается получить доступ к веб-сервису prestashop через getJSON / unable to access the prestashop webservice via getJSON

Является ответом!
ruben

18.12.2014 02:23:45

Я решил проблему сам, я просто добавляю header('Access-Control-Allow-Origin: *');на файловом диспетчере.PHP в папке веб-сервиса

Piotr Maj

25.08.2015 07:23:57

В prestashop 1.6 вы можете попробовать добавить это в

./prestafolder/webservice/dispatcher.php

по соображениям безопасности, вместо звездочки можно ввести доменное имя

header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Origin: http://example.com');

К ВАШЕМУ СВЕДЕНИЮ

Если вы по-прежнему будете иметь проблемы или Unauthorizedсообщение, попробуйте изменить свой url-адрес с

http://KEYTOKEN@example.com/api/

в

http://example.com/api/?ws_key=KEYTOKEN
cyril

08.12.2019 10:25:36

для меня я попытался с react app я должен был сделать некоторые изменения в dispatcher.PHP и добавить для варианта предполетное 200 вернуться

я добавил в диспетчерской.заголовок в PHP

//to access from external browser
header('Access-Control-Allow-Origin: *');
header( 'Access-Control-Allow-Headers: Authorization, Access-Control-Allow-Headers, 
Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access- 
Control-Request-Headers,Output-Format');
header( 'Access-Control-Allow-Methods: GET, OPTIONS, HEAD, PUT, DELETE');
header( 'Access-Control-Allow-Credentials: true');

затем модифицируется следующим образом после в коде

 if ($method === 'OPTIONS') {
die('200');
ob_end_flush();
}else{
if (isset($_SERVER['PHP_AUTH_USER'])) {
....
}
Закрыть X