无法通过getJSON访问prestashop Web服务

问题描述 投票:1回答:3

我正在尝试使用webservice prestashop(1.6)通过使用jquery函数getJSON()获得我的产品,但是在控制台的浏览器上,出现以下错误:

  XMLHttpRequest cannot load
 http://www.pourquoilavie.org/api/products/?ws_key=XXXXXkeyXXXXXXXXX&io_format=JSON.
 No 'Access-Control-Allow-Origin' header is present on the requested
 resource. Origin 'http://localhost' is therefore not allowed access.

我试图向htaccess添加“ Header set Access-Control-Allow-Origin:*”,但没有成功。

我想知道是否还有另一种设置标头的方法(除非将php与header('Access-Control-Allow-Origin: *');一起使用)

web-services prestashop getjson
3个回答
3
投票
在prestashop 1.6中,您可以尝试在其中添加它

./prestafolder/webservice/dispatcher.php

出于安全原因,您可以输入域名而不是星号

header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Origin: http://example.com');

FYI

如果仍然有问题或Unauthorized消息,请尝试从以下位置更改您的网址

http://[email protected]/api/

进入

http://example.com/api/?ws_key=KEYTOKEN


2
投票
我自己解决了这个问题,我只在Webservice文件夹中的dispatcher.php文件上添加了header('Access-Control-Allow-Origin: *');

0
投票
对我来说,我尝试使用React App,我必须在dispatcher.php中进行一些修改,并添加选项preflight 200 return

我添加在dispatcher.php标头中

//to access from external browser header('Access-Control-Allow-Origin: *'); header( 'Access-Control-Allow-Headers: Authorization, Access-Control-Allow-Headers, Origin,Accept, X-Requested-With, Content-Type, Access-Control-Request-Method, Access- Control-Request-Headers,Output-Format'); header( 'Access-Control-Allow-Methods: GET, OPTIONS, HEAD, PUT, DELETE'); header( 'Access-Control-Allow-Credentials: true');

然后在代码后进行如下修改

if ($method === 'OPTIONS') { die('200'); ob_end_flush(); }else{ if (isset($_SERVER['PHP_AUTH_USER'])) { .... }

© www.soinside.com 2019 - 2024. All rights reserved.