我正在开发一个小型Web应用程序,它通过访问另一台服务器的数据简化了创建和填充USPTO IDS表单的过程。为了访问数据,我使用的是此API - http://ops.epo.org/3.1/rest-services/published-data/publication/epodoc/US9623902/biblio.js。
我正在使用angular进行此操作,因此我使用了 $ http ,但它正在抛出错误500(内部服务器错误)。使用 ajax-request 进行此操作时,其工作正常。实际上任何其他方法,如 $。get() 而不是ajax会抛出相同的错误,即使我使用 ng-resource get 方法但没有帮助。我没有得到我做错的事。
以下是我的代码 -
$.get( "http://ops.epo.org/3.1/rest-services/published-data/publication/epodoc/US9623902/biblio.js",
function( data ) {
vm.inventors = data['ops:world-patent-data']['exchange-documents']['exchange-document']['bibliographic-data']['parties']['inventors']['inventor'];
console.log(vm.inventors);
});
var req = {
method: 'GET',
url: 'http://ops.epo.org/3.1/rest-services/published-data/publication/epodoc/US9623902/full-cycle.js',
};
$http(req).then(function(response){
console.log(response);
}, function(response){
console.log(response);
});
这两个代码都抛出错误500.这是图像
虽然这段代码工作正常。但是在这里我遇到页面加载问题,页面在数据绑定到 $ scope 之前加载,因此没有显示在页面上。
$.ajax({
url: 'http://ops.epo.org/3.1/rest-services/published-data/publication/epodoc/' + 'US9623902' + '/biblio.js',
type: 'GET',
dataType: "jsonP",
success: function(data) {
vm.inventors = data['ops:world-patent-data']['exchange-documents']['exchange-document']['bibliographic-data']['parties']['inventors']['inventor'];
console.log(vm.inventors);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
vm.errorContent = [{
heading: "Error",
description: "Could not load json data "
}];
return false;
}
});
成功结果的图像
任何帮助将不胜感激。谢谢。
答案 0 :(得分:0)
如果您使用x-www-form-urlencoded
作为标题,则可能需要转换您的请求。
var req = {
method: 'GET',
url: 'http://ops.epo.org/3.1/rest-services/published-data/publication/epodoc/US9623902/full-cycle.js',
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
transformRequest: function(obj) {
var str = [];
for(var p in obj)
str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p]));
return str.join("&");
},
};
答案 1 :(得分:0)
我的“GET”请求中没有问题。但是 $ http 的“jsonP”方法确实解决了这个问题。
@Sachila - 由于未发送数据,因此不需要进行转换。