2016-10-12 2 views
4

Может ли кто-нибудь помочь мне с этой ошибкой?TypeError: Невозможно прочитать свойство «replace» undefined vue-resource.js: 284

Я использую jQuery вместе с vue.js. Ниже приведен метод, с которым я сталкиваюсь ... Он вызван почтовым запросом. new_user содержит значения, полученные из полей формы html ...

Значения принимаются красиво, когда я пишу его в консоли.

Проблема возникает, когда я пытаюсь использовать метод ajax для хранения данных (это $ http.post()). Я получаю следующее сообщение об ошибке:

TypeError: Cannot read property 'replace' of undefined vue-resource.js:284

Существовало несколько ссылок, я пошел through.but я мог бы принять помощь от кого ... Я мог бы сделать какие-то глупые ошибки, потому что я использовал приведенный выше код из совершенно запущенного скрипта , Поэтому, если кто-нибудь может заметить ошибку, я был бы благодарен. Спасибо ... :)

Счастливое кодирование.

addUser : function(new_user){ 
     // var instance = this; 
     console.log(this) 
     var new_user_input = this.new_user 
     console.log(new_user_input.name)//this works fine.. 

     //problem comes right here 
     this.$http.post("clients/" , new_user_input).then((response) => { 
      alert("ok") 
     },(response) => { 
      alert("failed") 
      this.form_errors = response.data 
      // console.log("here should be the form errrors " + response.data.title) 
     }); 
    } 
+0

код выглядит нормально, я бы посмотрел причина вашей ошибки в данных this.new_user. Что он содержит? –

+1

спасибо за исправление и быстрый ответ. вы думаете, что использование jQuery вызывает это, поскольку я использую $. new_user - это объект и содержит следующие данные: new_user: Адрес объекта: «kathmandu» контакт: «телефон» dob: «1992» образование: «холостяки» электронная почта: «[email protected]» пол: «мужское» имя : «john doe» национальность: «Непальский» телефон: «45678» – Jay

+0

Ну, в коде выше вы не используете jQuery нигде, поэтому я не вижу причины там ... Какие версии Vue.js и vue-resource вы используете ...? –

ответ

1

Если вы используете Laravel, убедитесь, что у вас есть в вас шаблон:

Хорошо:

<script> 
     window.Laravel = <?php echo json_encode([ 
      'csrfToken' => csrf_token(), 
     ]); ?> 
</script> 

//OR 

<script> 
    window.Laravel = {!! json_encode([ 
     'csrfToken' => csrf_token(), 
    ]) !!} 
</script> 

BAD:

<script> 
     window.Laravel = '<?php echo json_encode([ 
      'csrfToken' => csrf_token(), 
     ]); ?>' 
</script> 

//OR 

<script> 
    window.Laravel = {{ json_encode([ 
     'csrfToken' => csrf_token(), 
    ]) }} 
</script> 
Смежные вопросы