[英]RESTful request in ajax and react
美好的一天,我试图在反应中消耗Web服务,但是我在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)
});
但是我没有任何警报,当我单击按钮仅重新呈现表单时,函数句柄提交工作正常,我尝试将confirm()放在// tag注释所在的空间中,并弹出确认,但是警报没有,我认为我在功能或某些方面有错误,谢谢您的帮助。
我没有运行脚本,而是看着它,我想问题可能出在您的bind(this)
对我来说this.setState
应该是一个错误“ 不是函数 ”,因为this
不是反应对象。 要获取警报,请尝试将警报设置为第一状态。
可以肯定的是,请查看您的浏览器控制台。
看起来大部分时间都在工作。 我将其放入一个JSBin中,似乎没有什么异常。
http://jsbin.com/rulaguxote/1/edit?html,js,输出
我使您的JSX基本保持不变,并在组件中添加了一些内容来帮助您可视化其状态。 单击按钮发送伪造的ajax请求。 根据状态,它将发送回200或400的HTTP状态(成功或失败)。 这样,您可以看到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");
}
});
如果您有任何疑问,请告诉我。
经过大量研究,我发现我的真正问题出在同一来源策略上,现在在项目的localhost版本中可以正常工作,谢谢。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.