2016-12-27 71 views
0

我的jsonp代碼由於某種原因無法使用angular!我讀過數千個例子,但它不起作用。看到我的代碼如下。角度1.5 jsonp代碼調用沒有成功的方法

我讀過這個問題,並沒有解決我的問題Angularjs JSONP not working

我的示例代碼顯示了與所定義的成功和錯誤方法http.jsonp電話。我現在使用Chrome進行開發和測試,第二張和第三張圖片顯示了服務的ajax服務調用和jsonp響應。

最新更新

從@TheSharpieOne接受幫助的服務器響應後現已返回的實際功能(而不是這是以前問題的字符串),但由於某種原因未執行成功的方法?

$http.jsonp(url).then(function(response) { 
     alert('success'); // not hit 
    }, function onError(response) { 
     alert('error'); // this is displayed 
    }); 

非常感謝,

角JS

var url = serviceRoot + "api/customer/get?callback=JSON_CALLBACK"; 

$http.jsonp(url).success(function (data) { 
    alert('success'); // never called 
}) 
.error(function() { 
    alert('error');  
}); 

的Chrome網絡面板

Shows chrome network panel, highlighting the ajax call

Ajax響應

shows ajax response (an array of dates)

+0

控制檯顯示什麼? – Quentin

+0

爲什麼現在我們有CORS時使用JSONP編寫新的API? – Quentin

+0

控制檯窗口是空的,沒有任何錯誤。順便說一下,什麼是CORS?謝謝, – Martin

回答

0

你JSONP響應被引用,它不應該是。它應該執行腳本,它會調用你的回調函數。現在它只是一個字符串,而不是帶參數的JavaScript函數調用。

JSONP通過在鏈接到您的URL的頁面上放置新的<script>標記來工作。當它執行時,它應該調用你的回調函數。因此,JSONP的迴應應該是JavaScript而不是字符串。

+0

感謝你,這似乎現在工作,因爲我已經改變了ajax返回不是一個字符串,雖然它似乎不可靠?出於某種原因,成功並不總是被打。有沒有一個已知的問題,或者我做錯了什麼,我使用v1.5.0-rc .2。我在打開控制檯窗口並打開禁用緩存的情況下測試。順便說一句,當完成時,頁面將使用jsonp對不同服務進行多次調用 – Martin