簡體   English   中英

Http Get Request和JSONP無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM