@successgdc #10楼 ,怎么将 payload 的数据处理为 $_POST 中去
还真不一样,是 \yii\web\Request.php getBodyParams()方法存在bug
你看你的请求头和我上面截图中的请求头是否一样,我的表单数据都在request payload里
亲测,真获取不了,我看了我本地的代码
LoginController继承于@fecshop\app\appserver\modules\AppserverController.php文件,该文件也是有
$behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;
跟了一遍代码, 在\yii\web\Request里的getBodyParams()方法中,
程序走这里
} elseif ($this->getMethod() === 'POST') {
$this->_bodyParams = $_POST;
}
所以才取不到值
如果程序走这里
if (isset($this->parsers[$contentType])) {
...
}
就不会有问题了
我打印 $this->parsers[$contentType] 为空,打印 $contentType 显示为 application/json
百度下资料,可以这样接收
$final = file_get_contents('php://input');
$data = json_decode($final, true);
我先暂时这样做,大佬有空看看,这是不是个小问题
好的,上面的问题消失了,现在出现新的提示,
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://api.zl.com/customer/login/account. (Reason: missing token ‘content-type’ in CORS header ‘Access-Control-Allow-Headers’ from CORS preflight channel).
我的测试环境是centos 7 下的火狐浏览器
更新了,问题还是存在,
/customer/login/account
该接口所在的文件是
@fecshop\app\appserver\modules\Customer\controllers\LoginController.php
该文件继承的是 @fecshop\app\appserver\modules\AppserverController.php 文件,上面更新的文件是@fecshop\app\appserver\modules\AppserverTokenController.php,有用吗?
把appserver api 的访问域名改成:http://www.a.com
改成这样vue的访问域名是可以的,
如果我的vue是用electron打包成了桌面软件,那么页面的访问url就是file协议的,没有域名了,那@appserver/config/fecshop_local_services/Store.php文件就配置不了域名了,这种情况怎么办呢
还有如果我有两个js应用调用appserver api接口,哪@appserver/config/fecshop_local_services/Store.php文件能同时配置多个域名吗?
换个问法,@appserver/config/fecshop_local_services/Store.php文件配置的访问域名是vue的域名还是appserver自己的访问域名呢?有点疑惑!!
我现在@appserver/config/fecshop_local_services/Store.php文件里配置的访问域名是http://www.b.com
vue的访问域名是:http://www.a.com
appserver api 的访问域名是:http://www.b.com
vue调用appserver api接口时,地址是:POST /customer/login/account
完整的接口请求就变成:POST http://www.a.com/customer/login/account
这样肯定访问不到接口数据的,所以我把/customer/login/account从http://www.a.com 代理到 http://www.b.com
location /customer {
proxy_pass http://www.b.com;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
}
我这样操作应该可行的吧!!
可结果还是提示
this domain is not config in store component
我知道 this domain is not config in store component 是哪里出的问题,你没看我懂我的问题
这个方法我也想到了,给所有的用户设置一个默认货运信息,然后前端隐藏掉,但这样总感觉美中不足,如果能像作者说的,把 fecshop 的服务以组件化的形式组装,更为强大、灵活
后台设置
前台显示,点击自定义属性,上面的价格不会跟着变
但把产品加入到购物车,价格又是按自定义属性价格来的
按你说的,现在可以使用人民币发布产品了,现在有一个问题,如上截图说明
我现在就想像 xunsearch services 一样,可以通过配置enableService来开启和关闭服务,如果要达到这样的需求,还需要改哪些文件呢,求大致的实现思路