Я снимаю волосы с этой проблемой: Я отправляю некоторые данные из формы из одного домена в другой с помощью JSONP, он отлично работает на моем локальном хосте, но просто не работает на сервере. Я использую CodeIgniter 2.X для бэкэнд. Вот код:Извлечение JSONP в PHP не работает
var telefono = $('#telefono').val();
var email = $('#email').val();
var mensaje = $('#mensaje').val();
$.ajax({
url: 'http://www.example.com/site/admin/index.php/controller/save',
type: 'POST',
dataType: 'jsonp',
data: JSON.stringify({nombre:nombre,telefono:telefono,email:email,mensaje:mensaje,idPropiedad:46}),
cache: false,
processData: false,
crossDomain: true
})
На CodeIgniter:
$info = json_decode(file_get_contents("php://input"));
var_dump($info);
Вот как я получить данные, он работает как шарм на моем локальном хосте. Тем не менее я получаю NULL на этом сервере. Я также попытался сбросить массив $ _POST, ничего там.
Это то, что я получаю демпинг массив $ _GET:
array(3) {
["callback"]=>
string(42) "jQuery1111037374000856652856_1438207931357"
["{\"nombre\":\"fasf\",\"telefono\":\"asfasfasfas\",\"email\":\"asfasfas\",\"mensaje\":\"fasfasfa\",\"idPropiedad\":46}"]=>
string(0) ""
["_"]=>
string(13) "1438207931360"
}
Я также попытался передавать данные с FormData() во внешнем интерфейсе, ничего.
Это то, что посылается:
Request URL:http://www.example.cl/site/admin/index.php/controller/save?callback=jQuery1111037374000856652856_1438207931357&{%22nombre%22:%22fasf%22,%22telefono%22:%22asfasfasfas%22,%22email%22:%22asfasfas%22,%22mensaje%22:%22fasfasfa%22,%22idPropiedad%22:46}&_=1438207931359
Request Method:GET
Status Code:200 OK
Есть идеи? Заранее спасибо.
же версии JQuery на обоих местах? –
Вы уверены, что путь в '$ info = json_decode (file_get_contents (" php: // input "));' правильный? Я не знаю ни одного 'php: // input' ... –
' php: // input' должен работать - я использую это регулярно. Попробуйте вместо этого использовать 'dataType: 'json'' и посмотрите, не изменит ли это что-либо. '$ .ajax' api для 'jsonp' говорит:« Загружает в блок JSON с помощью JSONP. Добавляет дополнительный «? callback =?» в конец вашего URL для указания обратного вызова. Отключает кеширование, добавляя параметр строки запроса, "_ = [TIMESTAMP]", если для параметра кеша установлено значение true. " –