За последние 24 часа нас посетили 21920 программистов и 1089 роботов. Сейчас ищут 735 программистов ...

Не работает post запрос, отправленный с помощью fetch

Тема в разделе "PHP для новичков", создана пользователем lOverMind, 23 окт 2017.

  1. lOverMind

    lOverMind Новичок

    С нами с:
    23 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Когда отправляю пост запрос с помощью программы postman, то с помощью
    file_get_contents('php://input') могу получить содержимое этого запроса. Но это не работает когда я отправляю post запрос с помощью fetch из браузера:

    Код (Javascript):
    1. fetch('url.to.my.site/page.php', {
    2.     method:'POST',
    3.     data:'Hello, World!',
    4. })
    5. .then(x=>x.text())
    6. .then(x=>console.log(x))
    Получаю пустую строку для file_get_contents('php://input').

    В чем может быть проблема?
     
  2. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    может у вас какая тайная причина использовать fetch - а почему если простой post то не
    через $.post() / $.ajax() отправлять?
     
  3. lOverMind

    lOverMind Новичок

    С нами с:
    23 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Хорошо, с помощью jquery работает, но почему все таки не работает fetch? Он все таки не требует подключения дополнительных библиотек.
     
  4. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    а в отладчике/консоли вообще видно что отправляет?
    может там ошибку какую кажет (вроде не все браузеры поддерживают)
     
  5. lOverMind

    lOverMind Новичок

    С нами с:
    23 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    Ошибок нет, запрос уходит. Нашел пока что только одно отличие от jqeury. В консоле хрома тип запроса у fetch - fetch, а у jqeury.post - xhr.
    DeepinScreenshot_select-area_20171023143949.png
     
  6. ADSoft

    ADSoft Старожил

    С нами с:
    12 мар 2007
    Сообщения:
    3.825
    Симпатии:
    738
    Адрес:
    Татарстан
    получается вопрос не в отправке.. .а в приеме?
    попробуй выводить в лог - $_SERVER['REQUEST_METHOD']
     
  7. lOverMind

    lOverMind Новичок

    С нами с:
    23 окт 2017
    Сообщения:
    4
    Симпатии:
    0
    В обоих случаях: POST
     
  8. MouseZver

    MouseZver Суперстар

    С нами с:
    1 апр 2013
    Сообщения:
    7.752
    Симпатии:
    1.322
    Адрес:
    Лень
    @ADSoft
    fetch как пишут - фишка будущего. Но дело в том что, у него нету атрибута data. Аналог body