[英]Magento SOAP Access denied
当我尝试使用以下代码使用Web服务调用本地Magento 1.9时,似乎给了我拒绝访问错误。
使用SOAPUI(或其他soap客户端)调用相同的地址,我没有问题。
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
我使用了相同的代码来调用远程副本,没关系。 可能是什么问题?
这听起来像是CORS的问题。 (跨源资源脚本编制)考虑使用谷歌搜索CORS和您的特定开发堆栈。
以前我在用这个地址。 PHP或Soapui的作品。
http://localhost/magento/index.php/api/?wsdl
现在我在我的soapui和php中都使用此地址。 两者都在工作。 http://localhost/magento/index.php/api/soap/?wsdl
解决方案是
1.创建一个新的SOAP / XML-RPX角色,说“测试”
2.在“角色资源”中,仅选择“全部”进行资源访问(仅用于测试)
3.编辑用户并将角色分配给“测试”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.