[英]Http Get Request and JSONP not working
我正在使用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 : false
}).then(function (response) {
$waitDialog.hide();
return response;
});
但這導致以下錯誤“ Access-Control-Allow-Origin不允許原始本地主機”。
但是,當我將方法更改為JSONP時,我得到了正確的響應,但是該響應是XML格式的。 由於無法使用JSONP設置內容類型,因此該API默認情況下使用application / xml類型。 有什么方法可以從以XML返回數據的第三方API請求數據。 ?
PS:由於第三方受其他人控制,因此我無法更改數據的默認響應類型。
替代方法是使用$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'或放置一個新鍵:值“ 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;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.