Я не решаюсь спросить, но пока не нашел решения. Я всегда думал, это может быть просто глупая ошибка, но я не могу ее найти.jQuery ajax post: PHP get no content
У меня есть JQuery 2.1 AJAX POST на мой PHP сервер:
$.ajax({
url: "http://my-server.com/post-example.php",
type: 'POST',
contentType: 'application/json; charset=utf-8',
dataType: 'json',
data: JSON.stringify({ foo: "bar" }),
success: function(data) {
console.log("SUCCESS");
},
});
Safari говорит мне в консоли, что данные запроса правильно и был послан. При попытке доступа foo
внутри PHP, все пусто:
var_dump($_POST); // array(0)
$foo = file_get_contents("php://input");
var_dump($foo); // string(0)
Когда я пытаюсь POST с завитком, я получаю результаты в php://input
:
curl -v -X POST -H "Content-Type: application/json" -d '{"foot":"bar"}' http://www.my-server.de/post-example.php
// on PHP side
var_dump($_POST); // array(0)
$foo = file_get_contents("php://input");
var_dump($foo); // string(13) "{"foo":"bar"}"
Я не могу найти причину. Возможно, что-то не так в моей конфигурации PHP, но я уже установил always_populate_raw_post_data = On
в своем php.ini
.
Я также пробовал без contentType
и dataType
, такой же эффект.
такой же вопрос? http://stackoverflow.com/questions/298745/how-do-i-send-a-cross-domain-post-request-via-javascript – Nostalgie
К сожалению нет. Я могу добраться до сервера, и я получаю все выходные данные, но запросы vars из PHP пустые. – 23tux
Хм зачем строчить? Вы можете просто разместить данные: {foo: "bar"}, не знаю, будет ли это иметь значение. – Esko