我使用AngularJS $ http发送HTTP Get Request。
$http({
method: 'get',
url: 'http://cross-domain-url/api/v1/service1',
params : {'key1' : 'value1'},
data:'',
headers : {'Accept': 'application/JSON',
'Content-Type' : 'application/JSON'},
cache : false
}).then(function (response) {
$waitDialog.hide();
return response;
});
但是这会导致以下错误“Access-Control-Allow-Origin不允许使用Origin localhost。”
但是当我将方法更改为JSONP时,我得到了正确的响应,但该响应是XML格式的。由于无法使用JSONP设置内容类型,默认情况下该API使用application / xml类型。有什么方法可以从第三方API请求以XML格式返回数据的数据。 ?
P.S:由于第三方是由其他人控制的,所以我无法更改默认的数据响应类型。
答案 0 :(得分:0)
另一种方法是使用$resorce
$http.defaults.useXDomain = true;
var Srv = $resource('http://cross-domain-url/api/v1/service1', {
key1: '@key'
});
Srv.get({
key: 'value1'
}, function(data) {
...
}, function(error) {
...
});
答案 1 :(得分:0)
将方法更改为'JSONP'而不是'GET'或添加新密钥:value“dataType”:“JSONP”
在这里,我已经给出了代码......
$http({
method: 'JSONP',
url: 'http://cross-domain-url/api/v1/service1',
params : {'key1' : 'value1'},
data:'',
headers : {'Accept': 'application/JSON',
'Content-Type' : 'application/JSON'},
cache : false
}).then(function (response) {
$waitDialog.hide();
return response;
});