magento 2 REST API 调用期间出现 400 错误请求
400 Bad Request during magento 2 REST API Call
在 angular 中使用 $http.get 时,我遇到了一个问题:Cross-Origin 请求被阻止:同源策略不允许读取远程资源.....
$http({
method: 'GET',
url: 'https://<magento_host>/rest/default/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][0][filters][0][value]=processing,pending&searchCriteria[filter_groups][0][filters][0][condition_type]=in',
headers : {
'Authorization': 'Bearer xxxxxxxxxxxxxxx'
}
}).success(function (data) {
}).error(function (data) {
});
为了避免跨源问题,我在 Apache 服务器的 .htaccess 文件中设置了以下方法。
- Header 总是设置 Access-Control-Allow-Origin "*"
- Header 总是设置 Access-Control-Allow-Methods "POST, GET, OPTIONS,
放置、删除
- Header 始终设置 Access-Control-Allow-Headers: 授权
在 firefox 开发者工具中我是这样的
- Cross-Origin 请求被阻止:同源策略不允许
在 https:///rest/default/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][ 读取远程资源0][filters][0][value]=processing,pending&searchCriteria[filter_groups][0][filters][0][condition_type]=in. (原因:CORS预检通道没有成功)。
当我尝试使用此 rest 客户端调试器工具时
Note : we try to find the solution but we failed. Please help...
我使用下面的代码来获得解决方案。
将选项请求更改为 200 ok
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ [R=200,L]
<IfModule mod_headers.c>
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Headers "Authorization"
</IfModule>
最后激活header并重启apache
sudo a2enmod headers
sudo service apache2 restart
在 angular 中使用 $http.get 时,我遇到了一个问题:Cross-Origin 请求被阻止:同源策略不允许读取远程资源.....
$http({
method: 'GET',
url: 'https://<magento_host>/rest/default/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][0][filters][0][value]=processing,pending&searchCriteria[filter_groups][0][filters][0][condition_type]=in',
headers : {
'Authorization': 'Bearer xxxxxxxxxxxxxxx'
}
}).success(function (data) {
}).error(function (data) {
});
为了避免跨源问题,我在 Apache 服务器的 .htaccess 文件中设置了以下方法。
- Header 总是设置 Access-Control-Allow-Origin "*"
- Header 总是设置 Access-Control-Allow-Methods "POST, GET, OPTIONS, 放置、删除
- Header 始终设置 Access-Control-Allow-Headers: 授权
在 firefox 开发者工具中我是这样的
- Cross-Origin 请求被阻止:同源策略不允许
在 https:///rest/default/V1/orders?searchCriteria[filter_groups][0][filters][0][field]=status&searchCriteria[filter_groups][ 读取远程资源0][filters][0][value]=processing,pending&searchCriteria[filter_groups][0][filters][0][condition_type]=in. (原因:CORS预检通道没有成功)。
当我尝试使用此 rest 客户端调试器工具时
Note : we try to find the solution but we failed. Please help...
我使用下面的代码来获得解决方案。
将选项请求更改为 200 ok
RewriteCond %{REQUEST_METHOD} OPTIONS
RewriteRule ^(.*)$ [R=200,L]
<IfModule mod_headers.c>
Header always set Access-Control-Allow-Origin "*"
Header always set Access-Control-Allow-Headers "Authorization"
</IfModule>
最后激活header并重启apache
sudo a2enmod headers
sudo service apache2 restart