JavaScript не работает с ионным

Я пытаюсь отправить json в скрипт php на сервере, и хотя я включил заголовок в скрипт php, чтобы CORS выдавала ошибку консоли

сообщение об ошибке

XMLHttpRequest не может загрузить http://www.awesomegag.0fees.us/updata.php. В запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». ПроисхождениеHTTP: // локальный: 8100Поэтому не допускается доступ. Ответ имел HTTP-код состояния 403.

мой код:

PHP

<?php
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: GET, POST');
header("Content-Type: application/json; charset=UTF-8");
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);
}
echo"hello";
$postdata = file_get_contents("php://input");
$request = json_decode($postdata);
?>

Мой app.js

.controller('datactr',   ['$scope','$http','ApiEndpoint',function($scope,$http,ApiEndpoint) {
$scope.submit=function(){
console.log("step1");

$http({
method:'POST',
url:'http://www.awesomegag.0fees.us/updata.php',
data:{
'name':$scope.name
}

}).success(function(data,status,header,config){
console.log("step2");
console.log(data);
})
});

Я попытался заставить его работать с использованием метода proxy, указав path / api и proxyUrl по адресу updata.php в ionic.project, а затем заменив URL в службе http на / api. Я получаю 500 внутренних ошибок сервера.

Кто-нибудь может помочь?

Обновление: я переехал на другой сервер, где все работает нормально. Я полагаю, что это проблема с сервером, но я не знаю, как это исправить.

2

Решение

Похоже, что ваш сервер не позволяет метод OPTIONS.

Современный браузер делает «предполетный» запрос на запрос перекрестного источника, чтобы убедиться, что это разрешено делать перед отправкой запроса GET / POST.

введите описание изображения здесь

Решение: Включить команду OPTIONS. Пример для Apache http://httpd.apache.org/docs/trunk/mod/mod_allowmethods.html

0

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

Других решений пока нет …

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