繁体   English   中英

Magento SOAP访问被拒绝

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM