Javascript 在向其他url发出JSON请求时获取{“readyState”0、“status”0、“statusText:“error”}
我正在尝试使用Javascript 在向其他url发出JSON请求时获取{“readyState”0、“status”0、“statusText:“error”},javascript,jquery,ember.js,jwt,Javascript,Jquery,Ember.js,Jwt,我正在尝试使用ember simple auth和自定义适配器向位于不同url上的API发出JSON请求。当我发出请求并检查控制台时,请求返回状态代码:301永久移动,并返回错误{“readyState”:0,“Status”:0,“statusText”:“error”} 当我打印requestOptions变量时,我得到{“async”:true,“crossDomain”:true,“url”:https://api.otherwebsite.com/api/auth/login“,“pr
ember simple auth
和自定义适配器向位于不同url上的API发出JSON
请求。当我发出请求并检查控制台时,请求返回状态代码:301永久移动
,并返回错误{“readyState”:0,“Status”:0,“statusText”:“error”}
当我打印requestOptions
变量时,我得到{“async”:true,“crossDomain”:true,“url”:https://api.otherwebsite.com/api/auth/login“,“processData”:false,“method”:“POST”,“contentType”:“application/json”,“data”:“{\“name\”:“foo\”,“password\”:“bar\”,“secret\”:“012345\”}
我不确定问题出在哪里,任何帮助都将不胜感激 这是我用于JWT的custome
验证器
import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';
import config from '../config/environment';
const { RSVP: { Promise }, $: { ajax }, run } = Ember;
export default Base.extend({
tokenEndPoint: `${config.host}/user_token`,
restore(data) {
return new Promise((resolve, reject) => {
if (!Ember.isEmpty(data.token)) {
resolve(data);
} else {
reject();
}
});
},
authenticate(creds) {
const {email, password} = creds;
const data = JSON.stringify({
auth: {
email,
password
}
});
const requestOptions = {
url: this.tokenEndPoint,
type: 'POST',
data,
contentType: 'application/json',
dataType: 'json'
};
return new Promise((resolve, reject) => {
ajax(requestOptions).then((response) => {
const { jwt } = response;
run(() => {
resolve({
token: jwt
});
});
}, (error) => {
run(() => {
reject(error);
});
});
});
},
invalidate(data) {
return Promise.resolve(data);
}
搜索跟踪重定向的选项。。。。或者检查您的URL是否错误?(缺少https或www)@RolandStarke我将其更改为https,我现在获得状态代码200,但我仍然获得{“readyState”:0,“status”:0,“statusText”:“error”}
import Ember from 'ember';
import Base from 'ember-simple-auth/authenticators/base';
import config from '../config/environment';
const { RSVP: { Promise }, $: { ajax }, run } = Ember;
export default Base.extend({
tokenEndPoint: `${config.host}/user_token`,
restore(data) {
return new Promise((resolve, reject) => {
if (!Ember.isEmpty(data.token)) {
resolve(data);
} else {
reject();
}
});
},
authenticate(creds) {
const {email, password} = creds;
const data = JSON.stringify({
auth: {
email,
password
}
});
const requestOptions = {
url: this.tokenEndPoint,
type: 'POST',
data,
contentType: 'application/json',
dataType: 'json'
};
return new Promise((resolve, reject) => {
ajax(requestOptions).then((response) => {
const { jwt } = response;
run(() => {
resolve({
token: jwt
});
});
}, (error) => {
run(() => {
reject(error);
});
});
});
},
invalidate(data) {
return Promise.resolve(data);
}