поэтому localhost не допускается

Чтобы решить проблему CORS, я написал там

header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST'); header("Access-Control-Allow-Headers: X-Requested-With"); 

на моем сервере

но во время моего развития я вижу эту ошибку

 The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin 'http://localhost' is therefore not allowed access. 

Я думал, что позволить-происхождение: * все решит? Но почему он говорит, что заголовок содержит несколько значений?

Это обычная проблема при случайном включении CORS в два раза. Убедитесь, что вы не включили его в apache или что заголовок не устанавливается дважды. В качестве проверки на работоспособность вы можете попытаться удалить заголовок и добавить его прямо назад, прежде чем выполнять ответ.

Пример:

 header_remove('Access-Control-Allow-Origin'); header('Access-Control-Allow-Origin: *'); 

Из-за ограничений безопасности браузера большинство запросов Ajax подчиняются одной и той же политике происхождения; запрос не может успешно извлекать данные из другого домена, субдомена, порта или протокола. Но запросы Script и JSONP не подпадают под одни и те же ограничения политики происхождения.

Если вы еще не использовали JSONP. Википедия говорит

JSONP или «JSON с дополнением» является дополнением к базовому формату данных JSON, шаблону использования, который позволяет странице запрашивать и более эффективно использовать JSON с сервера, отличного от основного сервера.

Таким образом, ваш вызов ajax должен выглядеть следующим образом:

 $.ajax({ type: 'GET', crossOrigin: true, dataType: "jsonp", url: url, success: function(data) { console.log(data); } }); 

Использование * не будет работать. Следующий PHP-код будет принимать все запросы от всех доменов и работать в IE, Firefox, Chrome и Safari.

 $origin=isset($_SERVER['HTTP_ORIGIN'])?$_SERVER['HTTP_ORIGIN']:$_SERVER['HTTP_HOST']; header('Access-Control-Allow-Origin: '.$origin); header('Access-Control-Allow-Methods: POST, OPTIONS, GET, PUT'); header('Access-Control-Allow-Credentials: true'); header('Access-Control-Allow-Headers: Authorization, X-Requested-With'); header('P3P: CP="NON DSP LAW CUR ADM DEV TAI PSA PSD HIS OUR DEL IND UNI PUR COM NAV INT DEM CNT STA POL HEA PRE LOC IVD SAM IVA OTC"'); header('Access-Control-Max-Age: 1'); 

Прием запросов со всех доменов небезопасен. Для лучшего (но немного более сложного) решения см. Здесь: CORS, который работает в IE, Firefox, Chrome и Safari