我正在使用传统的Cakephp 2应用程序,需要通过另一个域上的AJAX帖子创建用户。
我在当地环境中完成了整个工作,但一直在与我的生产环境作斗争。
我正在使用Postman形成一致的Post请求并设置各种标题以及设置数据值。
本地:我向URL发送一个post请求,并将整个请求对象var_dump放入响应中。 我可以看到我的数据已填充。 $ this-> request-> data ['email']完全返回我的期望。
生产:我部署完全相同的代码,我的数据数组是完全空的。
我已经设置了Access-Control-Allow标头,我没有收到任何authisation问题。 我可以在应用程序中与请求进行交互,但我无法访问任何数据。 请求只是一个不同的端点是同一个请求。
我正在运行相同版本的PHP和完全相同的代码库。
任何人都可以想到可能影响请求数据的任何环境因素吗?
这是我的控制器代码简介:
public function remoteadd() {
var_dump($this->request);
if ($this->request->is('ajax')) {
$this->disableCache();
$this->autoRender = false;
$this->response->type('json');
$this->User->create();
$gen_pass = $this->generatePassword();
$this->request->data['password'] = $gen_pass;
$emailAddr = $this->request->data['email'];
// Check if this email exists
$conditions = array(
'User.email' => $emailAddr,
);
if (!$this->User->hasAny($conditions)) {
if ($this->User->save($this->request->data)) {
$this->response->statusCode(200);
$this->response->body(json_encode(
array('status' => 'success', 'message' => 'New account successfully created')
));
}
} else {
$this->response->statusCode(500);
$this->response->body(json_encode(
array('status' => 'error', 'message' => 'Email address already exists')
));
}
$this->response->send();
$this->_stop();
}
}