2015-06-07 112 views
0

当我尝试使用以下代码使用webservice调用我的本地Magento 1.9时,它似乎给了我访问被拒绝的错误。Magento SOAP访问被拒绝

我没有问题使用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

我不得不回去的管理面板和重新进入API键..现在我的PHP代码工作...但我SOAPUI是不是...哎呀! – NHK

回答

0

这听起来像是CORS的问题。 (跨源资源脚本)考虑使用谷歌搜索和您的特定开发堆栈。

0

的解决方案是
1.创建一个新的SOAP/XML的RPX角色,说“测试”
2.角色资源只需选择“全部”的资源访问(只用于测试)
3.编辑用户并分配角色为“测试”