Я работаю с унаследованным приложением Cakephp 2, и мне нужно создавать пользователей с помощью AJAX-записи в другом домене.
У меня все хорошо работает в моей локальной среде, но я боролся с моей рабочей средой.
Я использую Postman для формирования согласованного запроса Post и установки различных заголовков, а также установки значений данных.
Локально:
Я отправляю почтовый запрос на URL и var_dump весь объект запроса в ответ. Я вижу, что мои данные заполнены. $ this-> request-> data ['email'] возвращает именно то, что я ожидаю.
Производство:
Я развернул точно такой же код, и мой массив данных полностью пуст.
Я установил заголовки Access-Control-Allow, и у меня не возникает проблем с аутентификацией. Я могу взаимодействовать с запросом в приложении, но не могу получить доступ к каким-либо данным. Запрос - это тот же запрос, просто другая конечная точка.
Я использую идентичные версии 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();
}
}