ax ios in vue js отправить запрос в виде строки, а не объекта - PullRequest
2 голосов
/ 26 января 2020

как я могу решить эту проблему? это главное. js Я хочу отправить имя на сервер через ax ios in vuejs Но я не могу получить имя из $ _Request

import Vue from 'vue'
import App from './App.vue'
import axios from 'axios'

Vue.config.productionTip = false
Vue.prototype.$http = axios

new Vue({
  render: h => h(App),
}).$mount('#app')

, и это мой шаблонный скрипт

export default {

  data() {
    return {
    header:{headers: {
      'Content-Type': 'application/x-www-form-urlencoded',
    }},
      name:null,
      r:null,
    }

  },
  methods: {
    post:function(){
      this.$http.post('http://127.0.0.1/saver.php',{
          name:this.name,
        },this.header).then(r => {
       this.r=r;
       // eslint-disable-next-line no-console
       console.log(typeof {name:this.name})
      }).catch(err => {
   // eslint-disable-next-line no-console
   console.log(err.response.data)
});
    }
  },
}
</script>

и это мой php код на стороне сервера:

<?php
header('Access-Control-Allow-Origin: *');
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] == 'POST' && !empty($_REQUEST))
{

    print_r($_REQUEST);
}
?>

параметры:

params

и это ответ, который вернулся с сервера:

response server

1 Ответ

1 голос
/ 27 января 2020

Как Ax ios документация состояний,

По умолчанию ax ios сериализует JavaScript объектов в JSON. Чтобы вместо этого отправлять данные в формате приложения / x- www-form-urlencoded, вы можете использовать один из следующих параметров:

<...>

В браузере вы можете использовать URLSearchParams API

<...>

Кроме того, вы можете кодировать данные с использованием библиотеки qs

Это должно быть:

this.$http.post('http://127.0.0.1/saver.php', qs.stringify({
  name:this.name,
}),this.header)

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

...