【发布时间】:2016-03-22 21:35:26
【问题描述】:
我正在尝试使用 angularjs 项目中的 Redmine API。
我最终使用 jsonp 来解决 CORS 问题。
我在调用这个时收到 404:
var url = 'http://muser:mpasswd@myredmine/issues.json?callback=displayIssues';
$http({
method: 'JSONP',
url: url
}).
success(function (data, status) {
console.log("success");
console.log(data);
}).
error(function (data, status) {
console.log("Error: " + status);
});
...
function displayIssues(issues) {
console.log('displayIssues');
...
}
但是当我用 Postman 调用相同的 url 时,它可以工作。
为什么我会收到这个 404?
这是我的控制台:
GET http://muser:mpasswd@myredmine/issues.json?callback=displayIssues jsonpReq @ angular.js:8576(anonymous function) @ angular.js:8420sendReq @ angular.js:8291serverRequest @ angular.js:8025wrappedCallback @ angular.js:11498wrappedCallback @ angular.js:11498(anonymous function) @ angular.js:11584Scope.$eval @ angular.js:12608Scope.$digest @ angular.js:12420Scope.$apply @ angular.js:12712(anonymous function) @ angular.js:18980x.event.dispatch @ jquery-2.0.3.min.js:5y.handle @ jquery-2.0.3.min.js:5
authentication.service.js:100 Error: 404
Rest API 和 jsonp 都在 admin->setting->auth 中启用
我也试过了:
var url = 'http://muser:mpasswd@myredmine/redmine/issues.json&callback=JSON_CALLBACK';
$http.jsonp(url, {
params: {
callback: 'JSON_CALLBACK',
format: 'json'
}
}).success(function (data) {
console.log('ok');
}).error(function (data) {
console.log('error: ' + JSON.stringify(data));
});
得到这个:
GET http://muser:mpasswd@myredmine/issues.json&callback=angular.callbacks._0?callback=JSON_CALLBACK&format=json jsonpReq @ angular.js:8576(anonymous function) @ angular.js:8420sendReq @ angular.js:8291serverRequest @ angular.js:8025wrappedCallback @ angular.js:11498wrappedCallback @ angular.js:11498(anonymous function) @ angular.js:11584Scope.$eval @ angular.js:12608Scope.$digest @ angular.js:12420Scope.$apply @ angular.js:12712(anonymous function) @ angular.js:18980x.event.dispatch @ jquery-2.0.3.min.js:5y.handle @ jquery-2.0.3.min.js:5
services.js:35 error: undefined
另外,当调用这个时:
var url = 'http://muser:mpasswd@myredmine/redmine/issues.json&callback=JSON_CALLBACK';
$http.jsonp(url).success(function (data) {
console.log('success');
}).error(function (error) {
console.log('error:: ' + error);
});
我遇到同样的错误
请注意,muser、mpasswd 和 myredmine 只是示例。
【问题讨论】:
-
您是否通过 Postman 测试过 url?它对我不起作用。
-
我已经测试过了,但是我写的url(myredmine)只是一个例子
-
当你通过邮递员向这个url发送一个GET的结果是什么?
-
这是我帐户的所有问题。 displayIssues({"issues":[{"id":1831,"project":{"id":167,...
-
您有错误 404,请务必先在邮递员中删除它...
标签: javascript angularjs jsonp redmine-api