Javascript Http Get请求和JSONP不工作
我使用AngularJS$http发送http Get请求Javascript Http Get请求和JSONP不工作,javascript,ajax,http,angularjs,jsonp,Javascript,Ajax,Http,Angularjs,Jsonp,我使用AngularJS$http发送http Get请求 $http({ method: 'get', url: 'http://cross-domain-url/api/v1/service1', params : {'key1' : 'value1'}, data:'', headers : {'Accept': 'application/JSON', 'Content-Type' : 'application/JSON'}, cache : f
$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;
});
但这会导致以下错误“访问控制不允许使用Origin localhost Allow Origin”
但当我将方法更改为JSONP时,我得到了正确的响应,但该响应是XML格式的。As内容类型不能使用JSONP设置,该API默认使用application/xml类型。是否有任何方法可以从以XML格式返回数据的第三方API请求数据
备注:由于第三方由其他人控制,因此我无法更改数据的默认响应类型。另一种选择是使用
$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) {
...
});
将方法更改为'JSONP'而不是'GET',或者放置一个新的key: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;
});