хороший день, я пытаюсь использовать веб-службу в реагировании, но у меня возникают проблемы с функцией ajax, я не уверен, работает ли мой код:
prox= {"email":email, "password": password};
//tag comment
$.ajax({
type: 'POST',
url: (web service url),
data: JSON.stringify(prox),
contentType: "application/json; charset=utf-8",
crossDomain: true,
dataType: 'json',
success: function(data) {
this.setState({success: true, result: data});
alert("success");
this.setState({prueba: 'success'});
}.bind(this),
error: function() {
this.setState({failure: true});
alert("failure");
this.setState({prueba: 'failure'});
}.bind(this)
});
но у меня нет никаких предупреждений, когда я нажимаю кнопку только для повторной визуализации формы, функция handdle submit работает, я пытаюсь помещать подтверждение() в пространство, где комментарий тега//и подтверждение всплывают, но предупреждения не делают, я думаю, что у меня есть ошибка в функции или что-то в этом роде, спасибо за помощь.
Делая некоторые обширные исследования, я вижу, что моя настоящая проблема, у которой есть одна и та же политика происхождения, теперь я отлично работаю в localhost-версии проекта, спасибо.
Похоже, что он работает по большей части. Я бросил его в JSBin, и, похоже, ничего необычного.
http://jsbin.com/rulaguxote/1/edit?html,js,output
Я сохранил ваш JSX в основном тем же, и добавил несколько компонентов в компонент, чтобы помочь вам визуализировать его состояние. Нажмите кнопку, чтобы отправить фальшивый запрос ajax. В зависимости от состояния он либо отправит HTTP-статус 200 или 400 (успех или неудача). Таким образом, вы можете видеть, как работают функции success()
и error()
.
Еще одно замечание: если вы обеспокоены тем, что ваш .bind(this)
является причиной того, что ваш код не работает, вы можете указать такой контекст:
$.ajax({
type : 'POST',
url : '/test',
data : JSON.stringify(prox),
contentType : "application/json; charset=utf-8",
context : this, //use this instead of .bind
success : function (data) {
this.setState({success : true, failure : false});
alert("success");
},
error : function () {
this.setState({failure : true, success : false});
alert("failure");
}
});
Дайте знать, если у вас появятся вопросы.
Я не запускал сценарий, а просто смотрел на него. Я предполагаю, что проблема может быть вашей bind(this)
this.setState
для меня должно быть ошибкой " не является функцией ", поскольку this
не объект реакции. Чтобы получить предупреждение, поставьте предупреждение как первое состояние.
Чтобы точно посмотреть на консоль браузера.
this
все еще относится к экземпляру компонента React. Смотри мой ответ.