Magento SOAP Доступ запрещен

Когда я попытался вызвать свой локальный Magento 1.9 с помощью веб-сервиса, используя следующий код, кажется, что он дает мне ошибку «Отказано в доступе».

У меня не было проблем с использованием SOAPUI (или другого мыльного клиента) для вызова по тому же адресу.

Код PHP

<?php
$client = new SoapClient('http://localhost/magento/index.php/api/soap/?wsdl', array('trace' => 1));

$session = $client->login('apiuser', 'apikey');

echo "REQUEST:\n" . $client->__getLastRequest() . "\n";
echo "Response:\n" . $client->__getLastResponse() . "\n";
?>

Реагировать:

$ php -f catalog_product_list.php
PHP Fatal error:  Uncaught SoapFault exception: [2] Access denied. in /catalog_product_list.php:5
Stack trace:
#0 /catalog_product_list.php(5): SoapClient->__call('login', Array)
#1 /catalog_product_list.php(5): SoapClient->login('apiuser', 'apikey')
#2 {main}
thrown in /catalog_product_list.php on line 4

Я использовал тот же код для вызова удаленной копии, и это нормально. В чем может быть проблема?

0

Решение

Это звучит как проблема с CORS. (Межсайтовый скриптинг в ресурсах). Рассмотрите Googling CORS и ваш конкретный стек разработки.

0

Другие решения

предыдущий я использовал этот адрес. либо php или soapui работает.

HTTP: //localhost/magento/index.php/api/ WSDL

теперь я использую этот адрес в моем мыло и php. оба работают сейчас.
HTTP: //localhost/magento/index.php/api/soap/ WSDL

0

Решение состоит в том, чтобы

1. создайте новые роли SOAP / XML-RPX, скажем «Тест»
2. в разделе «Ролевые ресурсы» просто выберите «Все» для доступа к ресурсам (только для тестирования).

3. Отредактируйте пользователя и назначьте Роль на «Тест»

0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector