Угловой AJAX после выпуска

Я работаю над приложением на ионном языке, которое должно публиковать предоставленную пользователем информацию в базу данных. Я работаю с кем-то, кто создал отдельный php-скрипт для отправки этой формы, однако каждый раз, когда я пытаюсь отправить сообщение из приложения, у меня либо возникают проблемы с cors, когда не используется прокси, либо ошибка 404 при использовании json afeld …

PHP выглядит так:

<?php

$data = json_decode(file_get_contents("php://input"));
$celeb = $data->celeb;
$camp = $data->camp;
$spirit = $data->spirit;

$sport = $data->sport;
$bizs = $data->bizs;
$entrep = $data->entrep;

$young = $data->young;
$conser = $data->conser;
$saty = $data->saty;

$name = $data->name;
$surname = $data->surname;
$email = $data->email;

$contacts = $data->contacts;

$con = mysql_connect('localhost', 'yarp', 'arpi');
mysql_select_db('yeah', $con);

$qry_em = 'select count(*) as cnt from users where email ="' . $email . '"';
$qry_res = mysql_query($qry_em);
$res = mysql_fetch_assoc($qry_res);

if ($res['cnt'] == 0) {
$qry = 'INSERT INTO test (celeb,camp,spirit,sport,bizs,entrep,young,conser,saty,name,surname,email,contacts) values ("' . $celeb . '","' . $camp . '",' .$spirit . ','.$sport. ','.$bizs. ','.$entrep. ','.$young. ','.$conser. ','.$saty. ','.$name. ','.$surname. ','.$email. ','.$contacts. ')';
$qry_res = mysql_query($qry);
if ($qry_res) {
$arr = array('msg' => "Submitted Successfully!!!", 'error' => '');
$jsn = json_encode($arr);
print_r($jsn);
} else {
$arr = array('msg' => "", 'error' => 'Error In Submit');
$jsn = json_encode($arr);
print_r($jsn);
}
} else {
$arr = array('msg' => "", 'error' => 'A submit has already been cast using this email');
$jsn = json_encode($arr);
print_r($jsn);
}


?>

мой контроллер выглядит так:

.controller('FrmController', function ($scope , $http) {
$scope.errors = [];
$scope.msgs = [];

$scope.vote = function() {

$scope.errors.splice(0, $scope.errors.length);
$scope.msgs.splice(0, $scope.msgs.length);

$http.post('https://jsonp.afeld.me/?url=http://www.examplesite.com/submit.php', {

'celeb'     : $scope.celeb,
'camp'      : $scope.camp,
'spirit'    : $scope.spirit,
'sport'     : $scope.sport,
'bizs'      : $scope.bizs,
'entrep'    : $scope.entrep,
'young'     : $scope.young,
'conser'    : $scope.conser,
'saty'      : $scope.saty,
'name'      : $scope.name,
'surname'   : $scope.surname,
'email'     : $scope.email,
'contacts'  : $scope.contacts

}
).success(function(data, status, headers, config) {
if (data.msg != '')
{

console.log(data.msg);
$scope.msgs.push(data.msg);
}
else
{
console.log(data.error);
$scope.errors.push(data.error);
}
}).error(function(data, status) {
$scope.errors.push(status);
});
}

})

Файл submit.php определенно находится по адресу, поэтому я не очень уверен, где я иду не так …

0

Решение

Как сказала Джесс Патон, тебе следует это использовать. Тем не менее, лучший пример (из моего сообщения в блоге, приведенного ниже) это:

<?php
//http://stackoverflow.com/questions/18382740/cors-not-working-php
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400');    // cache for 1 day
}

// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers:        {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

exit(0);
}


//http://stackoverflow.com/questions/15485354/angular-http-post-to-php-and-undefined
$postdata = file_get_contents("php://input");
if (isset($postdata)) {
$request = json_decode($postdata);
$username = $request->username;

if ($username != "") {
echo "Server returns: " . $username;
}
else {
echo "Empty username parameter!";
}
}
else {
echo "Not called properly with username parameter!";
}
?>

Для получения дополнительной информации и, если вам интересно, я написал пошаговое руководство о том, как публиковать данные из приложения Ionic на сервер PHP, а также Пример Github и вы можете увидеть это здесь: http://www.nikola-breznjak.com/blog/codeproject/posting-data-from-ionic-app-to-php-server/.

1

Другие решения

так что я не знаю много о php, но я уверен, что вам нужно включить cors в вашем php файле:

<?php
header("Access-Control-Allow-Origin: *");

Примечание: как и во всех случаях использования функции заголовка PHP, это должно быть перед отправкой любого вывода с сервера.

1

По вопросам рекламы [email protected]