VUE - axios Post не работает

Я хочу сделать ajax-вызов VUE.JS, который можно сделать с помощью axios. Я делаю этот вызов из файла JS, и ниже приведен код, который я пробовал до сих пор.

    <div id="VueCalling">    
        <div class="container">
            <label>Please enter thought </label>
        <input type="text" id="txtThought" class="form-control textboxCustm" v-model="textThought" />
        </div>
        <input type="button" class="btn btn-info" id="btnInsert" value="Insert JS" v-on:click="greet" />
        <br />
        <br />

        <a href="ReadThought.aspx" class="btn btn-primary">Read all thoughts</a>
    </div>
</asp:Content>

Это был мой HTML-код, а теперь, как указано ниже, JS-код.

new Vue({
    el: '#VueCalling',
    data: function () {
        return {
            textThought: null,
            checkbox: null,
            text: null,
        }
    },
    methods: {
        greet: function (event) {
            // `this` inside methods points to the Vue instance
            var passedEmail = this.textThought;
            // `event` is the native DOM event
            axios.post('Default.aspx/InsertThoughtMethod?Thought="' + passedEmail + '"',
    {
        headers: {
            'Content-type': 'text/xml; charset=\"utf-8\"'
        },
    }, function (data) {
        alert(data);
    }).then(function (response) {
        console.log(response);
    }).catch(function (error) {
        console.log(error);
    });
        }
    }
});

Это мой код позади метода:

[WebMethod]
    public static bool InsertThoughtMethod(string Thought)
    {
        return true;
    }

Я проверил консольные и сетевые журналы. Выдает эту ошибку. Журнал сети

Отладчик не доходит до метода. Я не могу двигаться дальше.


person Prihaan    schedule 17.07.2018    source источник
comment
Выполняется ли метод приветствия? (можно добавить лог консоли). Затем откройте инструменты разработчика браузера и проверьте, отправляется ли HTTP-сообщение по клику. А также сообщите нам ответ от сервера. (404, межсайтовый скриптинг, ...)   -  person user1497119    schedule 17.07.2018
comment
Вместо не работает более подробное объяснение было бы полезно. При отладке ajax-запросов часто бывает полезно проверить следующие детали: Отправляется ли запрос в первую очередь, если да, то каков код состояния. Если вы установите точку останова на контроллере, вы получите там запрос или нет?   -  person Lassi Uosukainen    schedule 17.07.2018
comment
Простите за это. Я отредактировал вопрос и добавил больше деталей   -  person Prihaan    schedule 17.07.2018
comment
500 указывает на внутреннюю ошибку сервера. Так что нет ничего плохого в вашем POST-запросе axios. Вы должны проверить журнал вашего сервера.   -  person puelo    schedule 17.07.2018
comment
Привет @puelo .. Да, ты прав. Но дело в том, что я держал отладчик в месте назначения, и он не доходит. Не доезжая туда, он дает 500   -  person Prihaan    schedule 17.07.2018
comment
Тогда ошибка уже до этого - проверь как у тебя роутинг на стороне сервера делается. Ваш журнал ошибок должен дать вам подсказку (трассировку стека), где искать.   -  person puelo    schedule 17.07.2018
comment
Вы установили свой базовый URL-адрес axios? axios.baseURL = 'localhost:51234';   -  person Kay Weng    schedule 18.07.2018
comment
Эй, @KayWeng, кажется, я этого не делал. можете подсказать как сделать?   -  person Prihaan    schedule 18.07.2018
comment
нет необходимости устанавливать baseURL для его правильного URL-адреса .. просто я не получаю отладчик, запущенный там   -  person Prihaan    schedule 20.07.2018


Ответы (1)


Я работал над этим кодом и нашел решение. Код ниже работает хорошо. Я проверил.

new Vue({
el: '#VueCalling',
data: function () {
    return {
        textThought: null,
        checkbox: null,
        text: null,
    }
},
methods: {
    greet: function (event) {
        // `this` inside methods points to the Vue instance
        var passedEmail = this.textThought;

        // `event` is the native DOM event
        axios.post('Default.aspx/InsertThoughtMethod', { Thought : passedEmail }).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});
    }
}
});
person Rush.2707    schedule 24.07.2018