未定义的ajax请求从rails应用程序调用json
undefined request on ajax call for json from rails app
我编写了以下代码,期望获得json元素数组:
var jsonArray = getEmails();
function getEmails(){
var response = null;
var req = new XMLHttpRequest();
req.open('GET', 'users/emails.json');
req.setRequestHeader( 'Content-Type', 'application/json' );
req.onload = function() {
if (req.readyState == 4 && req.readyState == 201) {
response = JSON.parse( req.responseText );
}
};
return response;
}
但我一直得到"未定义"的要求。打开请求。
你知道是什么问题吗?
我认为应该是这样的
var jsonArray = getEmails();
function getEmails(){
var response = null;
var req = new XMLHttpRequest();
req.setRequestHeader( 'Content-Type', 'application/json' );
req.open('GET', 'users/emails.json');
req.send();
req.onreadystatechange = function() {
if (req.readyState == 4 && req.status == 200) {
response = JSON.parse( req.responseText );
}
};
return response;
}
您使用req.onload
来检查响应,以及我知道您应该使用req.onreadystatechange
,而您将re.readyState
滥用于req.status
,因此:
(req.readyState == 4 && req.readyState == 201) {
变成这样:
if (req.readyState == 4 && req.status == 200) {
检查onreadystatechange(4)上的最后一个触发器和状态码200,是否OK。正如Turbod提到的,你没有使用req.send()
您跳过了:
req.send();
方法。
下面是一个例子:https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest
相关文章:
- 未为路由器应用程序调用Node.Js的回调
- 从node.js应用程序调用Mongoose Model.save()时挂起
- 从angular js中的另一个ng应用程序调用方法
- 从C#Windows Phone应用程序调用Javascript-这是一个好方法吗
- 区分对$http的应用程序调用和 Angular 对拦截器中静态资源的请求
- 从Flash AS3 Android应用程序调用Java脚本函数以检索设备ID和序列号
- 如何从我的 Phonegap 应用程序调用服务器 api
- 想要从Android应用程序调用服务器端javascript
- 如何从 Atom 电子应用程序调用 Shell 脚本或 python 脚本
- 从一个 Angularjs 应用程序中从另一个应用程序调用函数
- 通过SWT浏览器/ SWT浏览器功能从GWT应用程序调用Java方法
- 从本机iOS应用程序调用带有变量的Javascript函数
- 从ios应用程序调用javascript函数
- 苹果TVOS应用程序调用另一个TVOS应用
- 从应用程序调用时未定义函数
- 从节点应用程序调用amazon lambda函数
- 正在检测从android应用程序调用的URL
- 可以从$scope中访问angularjs$scope$应用程序调用
- 从其他应用程序调用Node.js函数
- 未定义的ajax请求从rails应用程序调用json